关于Android实现TextView跑马灯效果
来源:互联网 发布:异地同步看电影软件 编辑:程序博客网 时间:2024/06/02 04:13
在xml属性中设置
<TextView android:width="wrap_content" android:height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatMode="marquee_forever" android:textSize="16sp" android:maxEms="5" android:text="内容长度一定要超过控件的长度"/>
解释下上面的几个属性,实现跑马灯效果的重要属性有两条
要实现跑马灯效果必须将当前TextView设置成单行显示
android:singleLine="true" /*值得一提的是,现在的singleLine已经被官方废弃, 改用maxLines来代替, 但经过测试,要实现跑马灯效果,仍然需要使用singleLine */
然后将TextView的省略模式设置为marquee(滚动显示),这里说明下ellipsize属性的几种模式,start(省略前面的部分)、middle(省略中间的部分)、end(省略后面的部分)、marquee(滚动显示)
android:ellipsize="marquee"
实际上,上面两条设置已经实现了跑马灯效果,但实际测试却会发现并没有滚动显示,这是因为要让TextView“跑”起来必须要先满足它的“虚荣心”。
什么叫“虚荣心”呢?简单来说,就是让它知道,我们现在在看它,这里有两种方法,一种方法是给它焦点,一种方法是告诉它我们选中它了。
在这里我们先分析下focusable和selected两种状态了。不要混淆它们,如果你经常使用selector的话,你应该知道,它们代表两种不同的状态。
从字面上看,focusable代表的属性指是否获取到焦点,而selected代表的属性指是否选中,但这里要注意的有两个方面:
第一:focusable设置为true时,并不代表控件获取到了焦点,而是代表控件可以获取到焦点,真正要获取到焦点要通过点击或者代码调用requestFocus()方法来获取第二:selected状态只能由代码中调用setSelected(boolean)来设置,不会收到点击或者触摸控制,即使你自定义触摸事件也依然是要调用setSelected(boolean)。
经过测试,我发现第一种获取焦点的方法并不好用,很多情况下都无法满足TextView的“虚荣心”,而第二种设置选中的方法却是没出现过任何问题,所以在这里我推荐大家使用第二种方法。当然,第一种方法的实现我也在这里贴出来:
第一种方法(在xml中设置如下属性):
android:focusable="true"//可以获取到焦点 android:focusableInTouchMode="true"//可以通过触摸获取到焦点
第二种方法(在代码里调用)(推荐):
textView.setSelected(true);
另外说下上面的xml中最后几个属性=
//marqueeRepeatMode指的是TextView滚动显示的次数 //默认是滚动3次,marquee_forever表示滚动无限次 android:marqueeRepeatLimit="marquee_forever" //maxEms表示的是单行显示的最大长度,要实现跑马灯效果必须让文本内容大于最大长度 //这里设置成6则代表最多显示5个中文字符 android:maxEms="5"
关于跑马灯的实现基本介绍到这里,总结下,xml中设置为单行显示,省略模式设置为跑马灯,让内容大于最大长度,在代码中调用setSelected(true)设置为选中状态,则可实现跑马灯效果,而滚动次数可以在xml中通过marqueeRepeatLimit属性来设置
谢谢大家阅读,本文到这结束,如有地方需要加以改进,还请指出,万分感谢~
- 关于Android实现TextView跑马灯效果
- Android TextView跑马灯效果实现
- android textview跑马灯效果实现
- Android TextView实现跑马灯效果
- android TextView实现跑马灯效果
- android TextView实现跑马灯效果
- Android开发 TextView实现跑马灯效果
- android用TextView实现跑马灯效果
- Android TextView实现跑马灯效果
- Android TextView 跑马灯效果的实现
- android TextView实现跑马灯效果
- Android TextView实现跑马灯效果
- Android--TextView实现跑马灯效果
- Android开发:TextView实现跑马灯效果
- Android---14---TextView实现跑马灯效果
- Android TextView实现跑马灯效果。
- android textview 实现跑马灯效果
- Android下TextView实现跑马灯效果
- C#中设置多标签页面
- 热部署插件JRebel在Eclipse和Intellij IDEA中的安装与配置(非破解,官方正版永久使用)
- Codevs 1025 选菜
- 《C++ Concurrency in Action》笔记19 限时等待、FP并行编程
- tomcat点击startup.bat一闪而退的方法
- 关于Android实现TextView跑马灯效果
- Fire Net HDU
- Mysql在高并发情况下,防止库存超卖而小于0的解决方案
- 手把手教你用Python画地图
- Linux 命令
- 从零开始使用Visual Studio 2017编译器 (一)
- strcmp与strncmp的区别
- asp中的分页
- jenkins部署完整版本