clickableSpan实现textView文字部分点击有响应
Posted 短暂的火光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickableSpan实现textView文字部分点击有响应相关的知识,希望对你有一定的参考价值。
先定义一个clickableSpan的子类
1 class MyClickText extends ClickableSpan{ 2 private Context context; 3 4 public MyClickText(Context context) { 5 this.context = context; 6 } 7 8 @Override 9 public void updateDrawState(TextPaint ds) { 10 super.updateDrawState(ds); 11 //设置文本的颜色 12 ds.setColor(Color.RED); 13 //超链接形式的下划线,false 表示不显示下划线,true表示显示下划线 14 ds.setUnderlineText(false); 15 } 16 17 @Override 18 public void onClick(View widget) { 19 Toast.makeText(context,"发生了点击效果",Toast.LENGTH_SHORT).show(); 20 } 21 }
然后是在textView中的使用
1 private TextView clicktext; 2 clicktext = (TextView) findViewById(R.id.clicktext); 3 4 SpannableString str = new SpannableString("超文本:http://www.baidu.com"); 5 str.setSpan(new MyClickText(this),4,str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 6 //当然这里也可以通过setSpan来设置哪些位置的文本哪些颜色 7 clicktext.setText(str); 8 clicktext.setMovementMethod(LinkMovementMethod.getInstance());//不设置 没有点击事件 9 clicktext.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明
以上是关于clickableSpan实现textView文字部分点击有响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 TextView 中获取 ClickableSpan 的坐标?
SpannableString实现TextView的链接效果
spnnableBuilder 实现Android 表情 高亮字体 及 点击事件