android TextView 实现自定义文字点击效果
2016-03-07 17:06
936 查看
Android TextView 可以通过
android:autoLink="phone" 来设置文字的默认点击行为。 我们也可以自己定义文字的点击行为
android:autoLink="phone" 来设置文字的默认点击行为。 我们也可以自己定义文字的点击行为
TextView textView = (TextView) findViewById(R.id.span_text); StringBuilder sb = new StringBuilder(); sb.append("个人信息"); sb.append("<a href=address" + ">" + "地址</a>"); sb.append("<a href=name" + ">" + "名字</a>"); 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 Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法:
- Android逆向分析--so文件
- Android开发入门与实践(第2版)
- 让ViewGroup中Fragment可见时才加载和不重复加载的方法
- android动画速率Interpolator类的一些认识
- android edittext 点击回车会响应两次的解决方案
- android-studio快捷键(md格式)
- android 自写 ViewPager
- Android 退出Activity的方式
- Android 应用 如何屏蔽系统中的后退键
- Android Ibeacon可行性分析
- Android编码规范
- Android JSBridge的原理与实现
- 为什么Android要增加Binder
- [置顶] android开发之gridView的一些属性。(项目经验总结)
- Android如何在任意界面弹出窗口
- android开发系列之6*0.9不等于5.4
- Android滑动事件冲突(demo演示)
- android应用程序静态分析工具androguard初体验
- 推荐几款实用的Android Studio 插件