Android 实现不同字体颜色的TextView实现代码
程序员文章站
2023-12-13 22:15:40
android 实现不同字体颜色的textview
遇到的需求,mark一下。
实现代码:
package com.chuck.recyclerviewdem...
android 实现不同字体颜色的textview
遇到的需求,mark一下。
实现代码:
package com.chuck.recyclerviewdemo; import android.content.context; import android.graphics.canvas; import android.text.spannablestringbuilder; import android.text.spanned; import android.text.style.foregroundcolorspan; import android.util.attributeset; import android.widget.textview; import java.util.list; /** * 项目名称:trunk * 类描述: * 创建人:administrator * 创建时间:2015/12/10 14:05 * 修改人:administrator * 修改时间:2015/12/10 14:05 * 修改备注: */ public class differentcolortextview extends textview{ public differentcolortextview(context context) { super(context); } public differentcolortextview(context context, attributeset attrs) { super(context, attrs); } public differentcolortextview(context context, attributeset attrs, int defstyleattr) { super(context, attrs, defstyleattr); } @override protected void ondraw(canvas canvas) { super.ondraw(canvas); } public void setdifferentcolortext(list<string> text,list<integer>colors){ settext(calculateresidue(text,colors)); } /**显示不同颜色*/ private spannablestringbuilder calculateresidue(list<string> text, list<integer>colors) { if(text==null||colors==null){ return null; } stringbuilder sb =new stringbuilder(); for (int i=0;i<text.size();i++){ sb.append(text.get(i)); } spannablestringbuilder ssb=new spannablestringbuilder(sb.tostring()); int begin=0; for (int i=0;i<text.size();i++){ foregroundcolorspan mspan = new foregroundcolorspan(colors.get(i)); ssb.setspan(mspan,begin,begin+text.get(i).length(), spanned.span_exclusive_exclusive); begin=begin+text.get(i).length(); } return ssb; } }
实现同一textview,不同颜色。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!