android TextView 实现自定义文字点击效果
16lz
2021-12-04
Android TextView 可以通过
android:autoLink="phone" 来设置文字的默认点击行为。 我们也可以自己定义文字的点击行为
TextView textView = (TextView) findViewById(R.id.span_text);StringBuilder sb = new StringBuilder();sb.append("个人信息");sb.append("+ ">" + "地址");sb.append("+ ">" + "名字");textView.setText(Html.fromHtml(sb.toString()));textView.setMovementMethod(LinkMovementMethod.getInstance());textView.setHighlightColor(Color.TRANSPARENT);//去掉点击后的蓝色背景CharSequence text = textView.getText();if (text instanceof Spannable) { int end = text.length(); Spannable sp = (Spannable) textView.getText(); URLSpan[] urls = sp.getSpans(0, end, URLSpan.class); SpannableStringBuilder style = new SpannableStringBuilder(text); style.clearSpans();// should clear old spans // 循环把链接发过去 for (URLSpan url : urls) { MyURLSpan myURLSpan = new MyURLSpan(url.getURL()); style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); } textView.setText(style);}
class MyURLSpan extends ClickableSpan{ String url; @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setColor(Color.parseColor("#f37021"));//颜色 ds.setUnderlineText(false);//去掉下划线 } public MyURLSpan(String url) { this.url = url; } @Override public void onClick(View widget) { Toast.makeText(MainActivity.this, url + " is clicked" ,Toast.LENGTH_SHORT).show(); }}
更多相关文章
- Android中的Button自定义点击效果
- Android(安卓)Button 点击时替换背景颜色和替换当前图标
- Android(安卓)UI系列:关于按钮点击事件
- android 播放视频
- 整理android环境离线安装搭建方法——支持android 2.3.3和androi
- RecyclerView初级使用
- ListView中添加Button后,Button的点击事件和ListView的点击事件冲
- Android(安卓)notification点击跳转到Activity,点击返回跳转,前一
- 升级Android(安卓)Studio3.1.3,gradel无法加载pom和类库