Android大法好Android工程师android成神之路

Android TextView 中实现部分文字变色以及点击事件

2016-10-11  本文已影响8413人  大崔527
SpannableStringBuilder spannable = new SpannableStringBuilder(content);
spannable.setSpan(newForegroundColorSpan(Color.RED),startIndex,endIndex,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannable);
//这个一定要记得设置,不然点击不生效
textView.setMovementMethod(LinkMovementMethod.getInstance());
spannable.setSpan(new TextClick(),startIndex,endIndex , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
@Override 
public void updateDrawState(TextPaint ds) { 
    ds.setColor(ds.linkColor); 
    ds.setUnderlineText(true); 
}
private class TextClick extends ClickableSpan{ 
@Override 
public void onClick(View widget) { 
     //在此处理点击事件
 } 
@Override
 public void updateDrawState(TextPaint ds) { 
      ds.setColor(Color.RED);
    } 
}

补充:关于想去掉点击后文字背景,设置一下HighlightColor即可android:textColorHighlight="#00ffffff"textView.setHighlightColor(Color.parseColor("#00ffffff"));

PS:如果后续有时间,我会封装一个该功能的控件放上来。
上一篇 下一篇

猜你喜欢

热点阅读