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,不同颜色。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android 实现不同字体颜色的TextView实现代码全部内容,希望文章能够帮你解决Android 实现不同字体颜色的TextView实现代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)