TextView显示不同颜色的文本,及文本变色可点击工具类
生活随笔
收集整理的這篇文章主要介紹了
TextView显示不同颜色的文本,及文本变色可点击工具类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.
定義 SpannableStringBuilder
SpannableStringBuilder builder = new SpannableStringBuilder(); 復(fù)制代碼2.
調(diào)用 SpannableStringUtils中的相應(yīng)方法
SpannableStringUtils.addColorTextWithClickEvent(R.color.dynamic_detail_recomment_name_color,builder,bean.getReply_name()+": ",new SpannableStringUtils.OnTextClickListener(){@Overridepublic void onClick() {mReplay.onUserClickListener(bean.getReply_uid());}}); 復(fù)制代碼3.
把最后的Builderset進(jìn)去
tvComment.setText(builder); 復(fù)制代碼4.
下面是對(duì)應(yīng)的工具類大家復(fù)制即可,其中BaseApplication是應(yīng)用的Application實(shí)例
public class SpannableStringUtils {//添加指定顏色的文字到spannable中public static void addColorTextToMsg(int color, SpannableStringBuilder spsBuilder, String content){SpannableString contentSps = new SpannableString(content);contentSps.setSpan(new ForegroundColorSpan(color), 0,content.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);spsBuilder.append(contentSps);}public static void addColorTextWithClickEvent(final int color, SpannableStringBuilder spsBuilder, String content, final OnTextClickListener onTextClickListener){SpannableString contentSps = new SpannableString(content); // contentSps.setSpan(new ForegroundColorSpan(color), 0,content.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);contentSps.setSpan(new ClickableSpan() {@Overridepublic void updateDrawState(TextPaint ds) {super.updateDrawState(ds);ds.setColor(BaseApplication.getInstance().getResources().getColor(color));ds.setUnderlineText(false); //設(shè)置下劃線}@Overridepublic void onClick(View widget) {onTextClickListener.onClick();}}, 0,content.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);spsBuilder.append(contentSps);}public interface OnTextClickListener{void onClick();} } 復(fù)制代碼轉(zhuǎn)載于:https://juejin.im/post/5b4c0de76fb9a04fb136d548
總結(jié)
以上是生活随笔為你收集整理的TextView显示不同颜色的文本,及文本变色可点击工具类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js书籍推荐
- 下一篇: 你不知道的 JavaScript 笔记—