TextView常用的几种方式:局部字体样式(二)

来源:互联网 发布:xshell for mac 编辑:程序博客网 时间:2024/05/21 06:33

前言:

以前写过关于TextView的相关内容,但是觉得没有把他们给整理出来,有点凌乱,所以在这里再次花时间把TextView常用的几种方式再次整理出来让大家参考!

功能:

在上一篇TextView的常用的几种方式:占位符(一)中简单介绍了android占位符的使用方法,在这篇文章中我们再来学习一下TextView局部样式的设置方法,来完善类似京东套装价或好评度这样同一个TextView中部分字符串为动态数据并且修改字体颜色的情况:
案例

实现原理:

本文修改样式的原理参考:http://blog.csdn.net/harvic880925/article/details/38984705

实现方法:

  1. 添加TextView控件:
  2. 添加字符串资源,并为TextView设置字符串资源
  3. 在activity中获取字符串资源的字符串对象
  4. 获取动态数据,并格式化字符串对象,并为其设置占位符的动态值
  5. 先构造SpannableString
  6. 再构造一个改变字体颜色的Span
  7. 将这个Span应用于指定范围的字体:由于字符串长度不定可以根据动态数据的长度进行计算
  8. 设置给TextView显示出来

    核心代码:

    //3,在activity中获取字符串资源的字符串对象String strPrice = getResources().getString(R.string.price);//4,获取动态数据String price = "1999.8";//格式化字符串对象,并为其设置占位符的动态值strPrice = String.format(strPrice,price);//5,先构造SpannableStringSpannableString spanString = new SpannableString(strPrice);//6,再构造一个改变字体颜色的SpanForegroundColorSpan span = new ForegroundColorSpan(Color.RED);//7,将这个Span应用于指定范围的字体:由于字符串长度不定可以根据动态数据的长度进行计算spanString.setSpan(span, 4, (4 + price.length()), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//8,设置给TextView显示出来tv_price.setText(spanString);

项目展示:

项目展示

项目地址:

https://github.com/Winfred1989/DemoTextView
0 0