Android开发技巧——去掉TextView中autolink的下划线
我们知道,在布局文件中设置textview的autolink及其类型,这时textivew上会显示link的颜色,并且文字下面会有一条下划线,表示可以点击。而在我们在点击textview时,应用将根据我们所设置的类型跳转到对应的界面。但是有时,我们因界面需求,需要去掉界面上显示的下划线,并保持功能不变。
如果已经设置了autolink,那么在textview当中再去设置TextPaint为无下划线是无效的,我们可以看URLSpan所继承的类ClickableSpan类的源码,如下:
public abstract class ClickableSpan extends CharacterStyle implements UpdateAppearance {/*** Performs the click action associated with this span.*/public abstract void onClick(View widget);/*** Makes the text underlined and in the link color.*/@Overridepublic void updateDrawState(TextPaint ds) {ds.setColor(ds.linkColor);ds.setUnderlineText(true);} }
可以看到在这里它是重新设置为有下划线的。
所以要解决这个问题,就只有再设置一个没有下划线的Spannable对象。
首先,继承一个CharacterStyle或其已实现的子类,重写updateDrawState方法,代码如下:
/** Date: 14-9-4* Project: Access-Control-V2*/ package cn.irains.access.v2.common;import android.text.TextPaint; import android.text.style.UnderlineSpan;/*** 无下划线的Span* Author: msdx (645079761@qq.com)* Time: 14-9-4 上午10:43*/ public class NoUnderlineSpan extends UnderlineSpan {@Overridepublic void updateDrawState(TextPaint ds) {ds.setColor(ds.linkColor);ds.setUnderlineText(false);} }
然后在textview设置了内容之后,调用以下的代码,设置一个span:
NoUnderlineSpan mNoUnderlineSpan = new NoUnderlineSpan(); if (textview.getText() instanceof Spannable) {Spannable s = (Spannable) textview.getText();s.setSpan(mNoUnderlineSpan, 0, s.length(), Spanned.SPAN_MARK_MARK); }
如果你是在listview中使用,并且用了holder,则span对象创建一个就可以了,然后在调用了setText之后再重新设置一遍span。这样textview在界面上就不会有下划线了,但却保留着autolink的功能。
本文链接:http://www.4byte.cn/learning/90271.html
Android开发技巧——去掉TextView中autolink的下划线相关推荐
- autolink android不显示下划线,Android开发技巧——去掉TextView中autolink的下划线
我们知道,在布局文件中设置textview的autolink及其类型,这时textivew上会显示link的颜色,并且文字下面会有一条下划线,表示可以点击.而在我们在点击textview时,应用将根据 ...
- android开发技巧——仿新版QQ锁屏下弹窗
新版的qq,可以在锁屏下弹窗显示qq消息,正好目前在做的项目也需要这一功能.经过各种试验和资料查找,终于实现,过程不难,但是却有一些地方需要注意. 下面是实现过程. 1.使用Activity,而不是V ...
- Android开发技巧——自定义控件之自定义属性
Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个 ...
- Android开发技巧——自定义控件之组合控件
Android开发技巧--自定义控件之组合控件 我准备在接下来一段时间,写一系列有关Android自定义控件的博客,包括如何进行各种自定义,并分享一下我所知道的其中的技巧,注意点等. 还是那句老话,尽 ...
- 一些很不错的Android开发技巧
一些很不错的Android开发技巧,这个项目翻译自 android-tips-tricks 去掉了一些我认为不重要的,对我使用过的东东做了评价,同时翻译了一些自己没有注意到的知识点的文章. ❤️ st ...
- Android开发技巧——大图裁剪
本篇内容是接上篇<Android开发技巧--定制仿微信图片裁剪控件> 的,先简单介绍对上篇所封装的裁剪控件的使用,再详细说明如何使用它进行大图裁剪,包括对旋转图片的裁剪. 裁剪控件的简单使 ...
- android开发技巧杂谈
android开发技巧一 android的一些常用包是发布在国外的,所以一些包,我们下载不下来,我们可以使用阿里云的镜像地址(maven { url 'https://maven.aliyun.com ...
- 社区说|常用 Android 开发技巧
活动时间 4月7日(本周四) 20:00-21:00 活动日程 20:00-20:45 主题分享 常用 Android 开发技巧 李老师的开发技巧私房菜,一定有你没吃过的菜! 重构技巧 常用插件 阅读 ...
- 【Andrid】去掉android中EditText的下划线
去掉android中EditText的下划线 android:background="@null"
最新文章
- linux硬盘满了问题排查
- linux+输出分页,是否可以在zsh中自动分页输出?
- mysql数据库保存中文乱码解决参考方案
- MapReduce简述、工作流程
- 数据双向绑定_手把手教你用JavaScript如何实现数据双向绑定
- premiere cs 下载
- Rethinking算法实习生
- JMeter定制功能实现
- ST-Link下载 KELL5程序下载 STM32程序下载
- BP 神经网络的非线性系统建模——非线性函数拟合
- SSM项目实战之十:用户信息查询
- RN项目集成react-native-code-push(四)-- ReactNative项目集成react-native-code-push
- 怎么购买虚拟主机合适?
- Android Dex 分包+热修复(QQ空间技术方案)
- 香侬专栏 | 独家对话斯坦福大学计算机系教授Percy Liang
- JAVA必背面试题和项目面试通关要点
- 【Python-数据结构】——线性结构
- 企业级项目分享:购物车模块(一)2021-06-08
- 13位巴克码二相相位编码模糊图
- 带你走进 ERNIE
热门文章
- Re: 求助:5道算法题
- 最近做了一个小小的系统,收获挺大的....我想总结一下
- Java线上问题排障:Linux内核bug引发JVM死锁导致线程假死
- 多线程并发编程需要注意虚假唤醒Spurious wakeup
- php报错Permission denied
- ubuntu下vim的配置
- WMI技术介绍和应用——查询正在运行的进程信息
- 损失函数之Cross-Entropy介绍及C++实现
- java rectangle获取xy_JFreeChart 动态移动线 并求出两条线交点XY
- 按下enter键在各个文本框中切换焦点_你真的了解Enter键吗?请先学习本文后再回答...