欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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,不同颜色。

        感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: