一起学android之如何设置TextView中不同字段的字体颜色(22)
2015-03-12 19:42
585 查看
在这里先看看效果图:
OK,有时候,在我们的项目中会要求TextView中文本有一部分的字体颜色不一样,这时我们应该使用
SpannableStringBuilder这个工具类,当然这个类的功能很强大,这里我只是实现上面的样式,其它的不做介绍,
SpannableStringBuilder的实现接口是Spannable这个接口,而Spannable最终都实现了CharSequence,因此我们直
接可以通过TextView.setText()来进行设置。
下面给出实现代码:
当然上面的第一步是获取你要改变颜色的文字的起始位置到结束位置,接着通过SpannableStringBuilder来改变文字
的颜色。
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/44225955 情绪控_
OK,有时候,在我们的项目中会要求TextView中文本有一部分的字体颜色不一样,这时我们应该使用
SpannableStringBuilder这个工具类,当然这个类的功能很强大,这里我只是实现上面的样式,其它的不做介绍,
SpannableStringBuilder的实现接口是Spannable这个接口,而Spannable最终都实现了CharSequence,因此我们直
接可以通过TextView.setText()来进行设置。
下面给出实现代码:
public class StringFormatUtil { private SpannableStringBuilder spBuilder; private String wholeStr, highlightStr; private Context mContext; private int color; private int start = 0, end = 0; /** * * @param context * @param wholeStr 全部文字 * @param highlightStr 改变颜色的文字 * @param color 颜色 */ public StringFormatUtil(Context context,String wholeStr,String highlightStr,int color){ this.mContext=context; this.wholeStr=wholeStr; this.highlightStr=highlightStr; this.color=color; } public StringFormatUtil fillColor(){ if(!TextUtils.isEmpty(wholeStr)&&!TextUtils.isEmpty(highlightStr)){ if(wholeStr.contains(highlightStr)){ /* * 返回highlightStr字符串wholeStr字符串中第一次出现处的索引。 */ start=wholeStr.indexOf(highlightStr); end=start+highlightStr.length(); }else{ return null; } }else{ return null; } spBuilder=new SpannableStringBuilder(wholeStr); color=mContext.getResources().getColor(color); CharacterStyle charaStyle=new ForegroundColorSpan(color); spBuilder.setSpan(charaStyle, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return this; } public SpannableStringBuilder getResult(){ if (spBuilder != null) { return spBuilder; } return null; } }
当然上面的第一步是获取你要改变颜色的文字的起始位置到结束位置,接着通过SpannableStringBuilder来改变文字
的颜色。
public class MainActivity extends Activity { private TextView tv_show; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { tv_show = (TextView) findViewById(R.id.tv_show); String wholeStr = "想要改变后面的颜色这是要改变的颜色"; StringFormatUtil spanStr = new StringFormatUtil(this, wholeStr, "这是要改变的颜色", R.color.blue).fillColor(); tv_show.setText(spanStr.getResult()); } }
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/44225955 情绪控_
相关文章推荐
- 一起学android之怎样设置TextView中不同字段的字体颜色(22)
- android 一个 textview 设置不同的字体大小和颜色
- android,在java代码中,如何给textview设置不同的颜色,以及引用color中资源设置颜色
- android同一个TextView设置不同颜色字体
- Android 在TextView中设置不同的字体、颜色、链接等
- android 一个 textview 设置不同的字体大小和颜色
- android 一个 textview 设置不同的字体大小和颜色
- android 一个 textview 设置不同的字体大小和颜色
- 如何给textview中的不同的内容设置不同的颜色和字体
- Android 一个TextView中设置文字不同字体大小和颜色的最完整方法
- Android之TextView设置字体不同颜色大小
- [Android UI界面] 如何在activity中动态的设置TextView上字体的颜色
- Android中TextView、EditText对部分内容设置不同格式(颜色、字体、超链接、图片。。)
- Android TextView设置不同的颜色字体
- Android textview 设置不同的字体大小和颜色
- android 通过一Textview设置不同大小的字体颜色
- Android TextView中文字通过SpannableString来设置不同的属性:超链接、颜色、字体等属性
- [置顶] android,在java代码中,如何给textview设置不同的颜色,以及引用color中资源设置颜色
- android 一个 textview 设置不同的字体大小和颜色
- 【郭林专刊】Android实战技巧:用TextView实现Rich Text---在同一个TextView中设置不同的字体风格