-1

我有一个文本视图,我想控制文本的样式。我的问题是我只想更改一小部分文本的样式。例如,当用户执行某项操作时,文本的前三个字母变为红色。我知道如何为整个文本做到这一点。但不知道仅将样式应用于部分文本。

4

1 回答 1

1

你应该使用ForegroundColorSpan

像这样试试

TextView textview = (TextView) findViewById(R.id.textview);
        SpannableString text = new SpannableString("Your Text");
        // make "Your" (characters 0 to 4) Red
        text.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);
        // make "Text" (characters 4 to 8) Blue
        text.setSpan(new ForegroundColorSpan(Color.BLUE), 4, 8, 0);
        // save our styled text into the Button
        textview.setText(text, BufferType.SPANNABLE);

对于 FontStyle 使用 StyleSpan 作为参考StyleSpan

所以使用可以在 StyleSpan 的帮助下使用自定义字体。

textview.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start,
                    end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

希望这会帮助你。

于 2013-11-03T05:24:34.313 回答