设置具有不同大小的textview的文本

use*_*676 1 android textview

我有TextView,我希望文本的每个单词具有不同的大小和字体.

我知道您可以将文本的一部分设置为粗体或使用和标签加下划线.

但是,如果我需要文本的一部分大小为18sp并且具有自定义字体(来自资源)而另一部分具有不同的自定义字体并且大小为14sp.

我可以将TextView拆分为单独的TextViews,但我想避免这种情况.

Ami*_*pta 8

对于不同的字体大小RelativeSizeSpan,您应该使用Reference RelativeSizeSpan.

TextView tv;
final SpannableString text = new SpannableString("Hello World");
text.setSpan(new RelativeSizeSpan(2.0f), 0, 5,
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new RelativeSizeSpan(1.5f), 5, 11,
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

tv.setText(text);
Run Code Online (Sandbox Code Playgroud)

对于FontStyle,StyleSpan用于参考StyleSpan

因此可以custom typefaceStyleSpan的帮助下使用.

text.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start,
                    end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

希望这会帮助你.