Android封装TextView内容伸缩工具

来源:互联网 发布:linux用户和组管理命令 编辑:程序博客网 时间:2024/06/05 11:15


相信大家经常看见下面的实现效果:




如果想要实现上面的效果,那么就要分下面几步:

1、判断文字内容有没有超过指定行数的高度,如果超过了显示伸展箭头,如果没超过则隐藏箭头;

2、对箭头进行监听,如果是伸展状态,则变为收缩状态;如果是收缩状态,则变为伸展状态;

3、根据文本控件的状态动态改变箭头的图标;

4、当文本内容发送改变时,依然能完美适配上述功能。


虽然只有简单的三步,但是如果没有一个清晰的对TextView的理解,可能就会卡在前两步中。在这里,我简要的提一下思路。源代码我已经封装为一个工具,一句代码就可调用。链接放在文章最下面。


1、首先根据TextPaint的measureText方法得到全部内容所占的像素宽度;然后在GlobalLayoutListener中得到TextView的width,否则在onCreate方法中得到的值为0;判断这两个值的大小,大小关系估计大家已经明白。

2、如果想设置TextView为具体行数加末尾省略,则需要setLines和setEllipsize方法配合使用;当然,取消行数限制显示全部内容也需要这两个方法进行配合。

3、根据TextView的伸缩状态值,动态的改变箭头的图标,这一步是最简单的一步。

4、当然,大家应该都明白了,有个监听器叫做TextWatcher。


思路介绍完毕,源代码放在这里,欢迎大家下载,如果有什么疑问,可以直接评论问我。

http://download.csdn.net/detail/cc_lova_wxf/9206853


0 0
原创粉丝点击