SpannableString实现TextView多文字颜色显示
2017-03-24 14:21
162 查看
我们在开发过程中有时候需要在同一个TextView中显示多种文字颜色,比较常见的比如:回复XX评论,@XXX等。
这种实现我们可以结合SpannableString来选取TextView的某一段字符显示不同的颜色:
主要介绍一下setSpan()方法的四个参数的含义:
此处主要使用了变色的知识,其他功能和此类似只需改变what参数的对象即可。
这种实现我们可以结合SpannableString来选取TextView的某一段字符显示不同的颜色:
/** * 文本变色处理 * * @param desc * @param commentUserNickname */ private SpannableString setColor(String desc, String commentUserNickname) { SpannableString spanText = new SpannableString(desc); Parcel p = Parcel.obtain(); p.writeInt(ctx.getResources().getColor(R.color.color_chat_blue_bg)); p.setDataPosition(0); ForegroundColorSpan fcs = new ForegroundColorSpan(p); spanText.setSpan(fcs, 0, commentUserNickname.length() + 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE); return spanText; }
主要介绍一下setSpan()方法的四个参数的含义:
/** * @param what SpannableString不仅仅可以设置字体颜色还有背景色,字体大小等许多功能,此处列举相对常用的 * 如BackgroundColorSpan 背景色 * ForegroundColorSpan 文本颜色(前景色)场景:回复评论 * StrikethroughSpan 删除线(中划线) 场景:物品打折降价 * UnderlineSpan 下划线 * AbsoluteSizeSpan 绝对大小(文本字体) * DynamicDrawableSpan 设置图片,基于文本基线或底部对齐 * StyleSpan 字体样式:粗体、斜体等 * TypefaceSpan 文本字体 * URLSpan 文本超链接 * @param start 开始设置字符串的起始索引 * @param end 设置字符串的结束索引 * @param flags 有四个取值 * Spannable.SPAN_EXCLUSIVE_EXCLUSIVE :前后都不包括,(a,b) * Spannable.SPAN_EXCLUSIVE_INCLUSIVE :前面不包括,后面包括。(a,b] * Spannable.SPAN_INCLUSIVE_EXCLUSIVE :前面包括,后面不包括。[a,b) * Spannable.SPAN_INCLUSIVE_INCLUSIVE :前后都包括。[a,b] */ public void setSpan(Object what, int start, int end, int flags) { }
此处主要使用了变色的知识,其他功能和此类似只需改变what参数的对象即可。
相关文章推荐
- TextView通过Html,实现一行文字,颜色不同等显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- 最新历史版本 :android--设置TextView部分文字的颜色和背景(高亮显示)
- Android之TextView实现文字过长时省略部分或者滚动显示
- android--设置TextView部分文字的颜色和背景(高亮显示)
- 【转】Android之TextView实现文字过长时省略部分或者滚动显示
- 实现TextView里的文字有不同颜色
- Android TextView 实现文字大小不同和文字颜色不同
- android显示TextView文字的倒影效果实现代码
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- android--设置TextView部分文字的颜色和背景(高亮显示)
- Android TextView 实现文字大小不同和文字颜色不同
- 【TextView】自己实现的TextView,只有显示文字功能。
- 最新历史版本 :android--设置TextView部分文字的颜色和背景(高亮显示)
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android的TextView实现文字高亮显示和显示表情
- Android之TextView实现文字过长时省略部分或者滚动显示
- 实现TextView里的文字有不同颜色