项目中用到一个需求,实现效果是这样的:
我是知识点我是知识点我是知识点我是知识点 【题】
要求这样的:1、这个化学知识点名字不固定长度 2、题子要是红色,比知识点字体小 3、要挨到化学名的旁边 4、【题】字不能挤掉了 5、可以折行
开始我用两个TextView,尝试多种布局都实现不了这种要求。然后尝试用一个TextView,尝试用这种方式:
holder.title.setText(Html.fromHtml(item.title+"<small><font color=\'#ff0000\'>【题】</font></small>"));
倒是可以变红,但改变字体大小不起作用。
最后多方探索,终于研究出来用 SpannableStringBuilder 实现:
String name = item.title;
String uname = "【题】";
String str = name + uname;
final SpannableStringBuilder sp = new SpannableStringBuilder(str);
sp.setSpan(new ForegroundColorSpan(0xFFFF0000), name.length(), str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //字体颜色
sp.setSpan(new AbsoluteSizeSpan(10, true), name.length(), str.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //字体大小
holder.title.setText(sp);