ShylaDong 2020-06-29
对于新手来说可以使用多个textview拼接的方法,但此方法繁琐,一个textview实现有两种方法,
一是通过Android支持的HTML来实现不同字体颜色大小,但此方法不可以精确控制字体大小,如 tv1.setText(Html.fromHtml("<font color=\‘#217aff\‘ ><big>abc</big></font><font color=\‘#217aff\‘ ><small>def</small></font>"));
另外一种方式为使用 SpannableString的方式,可以准确控制大小,同时可以把此类封装,便于使用。
SpannableString s1 = new SpannableString("asdf"); s1.setSpan(new AbsoluteSizeSpan(18, true), 0, s1.length()-2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); s1.setSpan(new AbsoluteSizeSpan(10, true), s1.length()-2, s1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //或设置颜色 s2.setSpan(new ForegroundColorSpan(Color.parseColor("#656565")), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); tv3.setTextColor(Color.parseColor("#217aff")); tv3.setText(s1);
解释一下方法参数,设置字体时第一个参数为字号大小,第二个第三个是应用范围,从第0个字符开始,最后的参数为应用范围之间的交叉,或理解为范围末端是否会被包括。