效果:

 

/** 将类似"¥ 1.5 元"的文本中的数字标红 或标蓝 或标绿*/public CharSequence getContent(){String input=text;if(input==null || input.isEmpty()) content="";else if(content==null){            //"¥ *-?\\d+(\\.\\d+)? *元"  你想要标红的文本部分if(pattern==null) pattern=Pattern.compile("¥ *-?\\d+(\\.\\d+)? *元");Matcher m=pattern.matcher(input);SpannableStringBuilder builder=null;int start=0;int end=0;while(m.find()){if(builder==null) builder=new SpannableStringBuilder();end=m.start();if(end>start){builder.append(input.substring(start, end));start=builder.length();}String g=m.group();builder.append(g.substring(1, g.length()-1).trim()).append("元");/** 红色 #e10130  修改这个颜色值选择你想要的颜色                     蓝色 #0083E5  我的项目设置的是蓝色 */builder.setSpan(new ForegroundColorSpan(Color.parseColor("#e10130")),start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);start=m.end();}if(builder==null) content=input;else{if(start

分割线======================================================================================

完整代码:

model类 HotNews:

public class HotNews{@SerializedName("text")public String text;@SerializedName("add_time")public String addTime;@SerializedName("id")public int id;@SerializedName("link")public String link;private CharSequence content;static Pattern pattern;/** 将类似"¥ 1.5 元"的文本中的数字标红 或标蓝 或标绿*/public CharSequence getContent(){String input=text;if(input==null || input.isEmpty()) content="";else if(content==null){if(pattern==null) pattern=Pattern.compile("¥ *-?\\d+(\\.\\d+)? *元");Matcher m=pattern.matcher(input);SpannableStringBuilder builder=null;int start=0;int end=0;while(m.find()){if(builder==null) builder=new SpannableStringBuilder();end=m.start();if(end>start){builder.append(input.substring(start, end));start=builder.length();}String g=m.group();builder.append(g.substring(1, g.length()-1).trim()).append("元");//我这边是一套代码多个项目 t2代表项目1 t4代表项目2 类似这样 根据项目的主体颜色选择对应的文字颜色if(BuildConfig.FLAVOR_TYPE.equals("t2")||BuildConfig.FLAVOR_TYPE.equals("t4")){/** 蓝色 */builder.setSpan(new ForegroundColorSpan(Color.parseColor("#0083E5")),start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);}else if(BuildConfig.FLAVOR_TYPE.equals("t7")){/** 绿色 */builder.setSpan(new ForegroundColorSpan(Color.parseColor("#1b9b3e")),start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);}else {/** 红色 */builder.setSpan(new ForegroundColorSpan(Color.parseColor("#e10130")),start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);}start=m.end();}if(builder==null) content=input;else{if(start

调用方法,从后台拿到返回的数据:

msg=mData.get(mIndex);if(msg instanceof HotNews) msg=((HotNews)msg).getContent();vNews.setText(msg instanceof CharSequence? (CharSequence)msg: Objects.toString(msg, null));

 

 

 

分割线======================================================

TextView中设置某段字体颜色:

tv_title.setText("支付界MCC查询");        tv_title.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/black_simplified.TTF"));        SpannableStringBuilder builder = new SpannableStringBuilder(tv_title.getText().toString());        //ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色        ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.parseColor("#FF9900"));        builder.setSpan(redSpan, 3, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//把下标3~6的字符设置为橙色        tv_title.setText(builder);

效果图:

tv_title.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/black_simplified.TTF"));这里是设置自定义的字体,只要把自定义字体的ttf文件放在assets下就可以了:

更多相关文章

  1. Android(安卓)Studio 3.3.X 导入项目的正确姿势
  2. 2015最火十大Android开源项目,是个程序员你就该看看!《IT蓝豹》
  3. Android项目集成ReactNative及遇到问题
  4. Android(安卓)设置TextView字体颜色
  5. 开始启程,你的第一行
  6. Android(安卓)Studio设置
  7. 单例模式在android中的应用
  8. android项目解刨之时间轴
  9. 【开源项目12】Retrofit – Java(Android) 的REST 接口封装类库

随机推荐

  1. Android(安卓)dumpsys工具分析
  2. android 休眠唤醒机制分析(二)
  3. Android(安卓)SDK Manager中Google APIs
  4. 关于Sytem.gc()主动触发Android(安卓)GC
  5. Android中的Intent Filter与安全
  6. unity obb 分包 上传googleplay
  7. Android隐藏输入法软键盘的一些说明
  8. android基本 UI(三)—单选RadioButton与复
  9. Android(安卓)ui utils-简单实用的Androi
  10. Android: Android(安卓)Thumbnail 攻略