📌  相关文章
📜  更改 Android 中字符串内特定范围字符的样式(1)

📅  最后修改于: 2023-12-03 15:40:11.310000             🧑  作者: Mango

更改 Android 中字符串内特定范围字符的样式

在 Android 中,我们经常需要对字符串的样式进行修改,比如说将某些字符加粗、斜体等。这时我们可以使用 SpannableString 类来实现。SpannableString 类是 String 类的一个子类,它可以让我们在字符串中设置不同的格式和样式。在本文中,我们将介绍如何使用 SpannableString 类来更改 Android 中字符串内特定范围字符的样式。

新建 SpannableString 对象

首先,我们需要新建一个 SpannableString 对象。可以通过传入一个 String 对象来创建 SpannableString 对象。

代码如下:

String str = "这是一段测试字符串";
SpannableString spannableString = new SpannableString(str);
设置样式

接下来,我们可以通过调用 setSpan() 方法来设置样式。setSpan() 方法有三个参数,分别为需要设置的样式、开始位置、结束位置。

例如,我们可以使用 ForegroundColorSpan 类来设置前景色:

ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.RED);
spannableString.setSpan(colorSpan, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

上述代码将字符串的前三个字符设置为红色。

同理,我们也可以使用 StyleSpan 类来设置加粗、斜体样式:

StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
StyleSpan italicSpan = new StyleSpan(Typeface.ITALIC);
spannableString.setSpan(boldSpan, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(italicSpan, 3, 6, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

上述代码将字符串的前三个字符设置为加粗,接下来的三个字符设置为斜体。

显示 SpannableString

最后,我们需要将 SpannableString 显示在文本控件中。这可以使用 TextView 的 setText() 方法来实现。

TextView textView = findViewById(R.id.text_view);
textView.setText(spannableString);

完整的代码如下:

String str = "这是一段测试字符串";
SpannableString spannableString = new SpannableString(str);
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.RED);
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
StyleSpan italicSpan = new StyleSpan(Typeface.ITALIC);
spannableString.setSpan(colorSpan, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(boldSpan, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(italicSpan, 3, 6, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

TextView textView = findViewById(R.id.text_view);
textView.setText(spannableString);

以上就是使用 SpannableString 类来更改 Android 中字符串内特定范围字符的样式的方法。