TextView跑马灯效果
16lz
2022-06-02
首先,使用TextView实现走马灯形式的滚动显示,只需要对其设置两个属性:
android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"
但是,TextView的滚动显示,有一个前提,TextView需要必须处于focus状态。当TextView失去焦点的时候,TextView将会停止滚动。如何实现无限滚动,当然也需要从焦点入手。当然,直接requestFocus()是不行的,这里我使用了另外一个方法。观察到textView有一个名为isFocused()的方法,文档中的注释是这样的:
/*** Returns true if this view has focus** @return True if this view has focus, false otherwise.*/
也就是说当TextView拥有焦点的时候会返回true.同时可以发现,TextView中很多地方都是直接调用这个方法作为判断条件,最关键的,这个方法被声明为public! ok, 实现方法已经初现端倪了!
做法是这样:比如,现在写一个类命名为一个AlwaysMarqueeTextView, 继承自TextView, 同时override isFocused()方法,并使其返回值为true, 样例如下:
[java] view plain copy print ?- publicclassAlwaysMarqueeTextViewextendsTextView{
- publicAlwaysMarqueeTextView(Contextcontext){
- super(context);
- }
- publicAlwaysMarqueeTextView(Contextcontext,AttributeSetattrs){
- super(context,attrs);
- }
- publicAlwaysMarqueeTextView(Contextcontext,AttributeSetattrs,intdefStyle){
- super(context,attrs,defStyle);
- }
- @Override
- publicbooleanisFocused(){
- returntrue;
- }
- }
转自 :http://blog.csdn.net/hustpzb/article/details/5985063
相关:http://www.cnblogs.com/snowdrop/articles/1856469.html
更多相关文章
- Android(安卓)相机实例
- Java、Android中的回调使用 Java回调方法
- Android(安卓)软键盘盖住输入框的问题
- android HorizontalScrollView实现滚动监听
- Android内部存储和外部存储的获取方法
- android 中的getCacheDir()、getFilesDir()、getExternalFilesDi
- android 焦点问题
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用