TextView显示不同颜色的文本,及文本变色可点击工具类
生活随笔
收集整理的這篇文章主要介紹了
TextView显示不同颜色的文本,及文本变色可点击工具类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.
定義 SpannableStringBuilder
SpannableStringBuilder builder = new SpannableStringBuilder(); 復制代碼2.
調用 SpannableStringUtils中的相應方法
SpannableStringUtils.addColorTextWithClickEvent(R.color.dynamic_detail_recomment_name_color,builder,bean.getReply_name()+": ",new SpannableStringUtils.OnTextClickListener(){@Overridepublic void onClick() {mReplay.onUserClickListener(bean.getReply_uid());}}); 復制代碼3.
把最后的Builderset進去
tvComment.setText(builder); 復制代碼4.
下面是對應的工具類大家復制即可,其中BaseApplication是應用的Application實例
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); //設置下劃線}@Overridepublic void onClick(View widget) {onTextClickListener.onClick();}}, 0,content.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);spsBuilder.append(contentSps);}public interface OnTextClickListener{void onClick();} } 復制代碼轉載于:https://juejin.im/post/5b4c0de76fb9a04fb136d548
總結
以上是生活随笔為你收集整理的TextView显示不同颜色的文本,及文本变色可点击工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js书籍推荐
- 下一篇: S9306开启web功能!