往往看到一些应用的标题栏中当标题超出时便会自动滚动

这篇文章要讲的就是如何去实现TextView的Marquee效果

其实TextView已经自带了如何实现滚动的属性

android:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"

通过上面的属性设置就能让TextView滚动起来。当然也可以通过代码去设置。


但是当设置完之后发现并没有滚动起来,原来TextView滚动的前提是这个空间必须要获得焦点。TextView需要必须处于focus状态。


在TextView的父类View中有一个方法isFocused(),系统通过这个方法去判断一个空间是否获得焦点。

所以我们就有了解决方案:

写一个子类继承TextView,重写isFocused()方法,直接返回true。当通过这个函数去判断TextView有没有获得焦点时,总是返回获得焦点于是我们的TextView就开始滚动起来了。代码很简单:

public class AlwaysMarqueeTextView extends TextView {    /**     * constructor     * @param context Context     */    public AlwaysMarqueeTextView(Context context) {          super(context);    }    /**     * constructor     * @param context Context     * @param attrs AttributeSet     */    public AlwaysMarqueeTextView(Context context, AttributeSet attrs) {          super(context, attrs);    }    /**     * constructor     * @param context Context     * @param attrs AttributeSet     * @param defStyle int     */    public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle) {          super(context, attrs, defStyle);    }        @Override    public boolean isFocused() {          return true;    }    }

更多相关文章

  1. 第17天android:《android从零开始》视频(1-5)
  2. Android如何获得系统版本
  3. android 定位服务
  4. scrollview 滚动条
  5. android背景选择器selector用法汇总
  6. android 定位服务
  7. Android-两种方式实现走马灯效果
  8. Android之自定义ListView滚动条样式
  9. 【Android(安卓)界面效果4】android背景选择器selector用法汇总

随机推荐

  1. 分享17个老罗Android开发视频教程(免费下
  2. Android中一个关于ListView的奇怪问题
  3. Android UI 详解之单选(RadioButton)和复选
  4. AIDL --- Android中的远程接口(3)
  5. 学习理解Android菜单Menu操作
  6. Android取消Edittext默认获取焦点
  7. Android Studio中新建项目时Your android
  8. Android(安卓)9.0 添加 SD 卡写权限
  9. Android(安卓)访问权限设置--cocos2dx常
  10. Android(安卓)音乐播放器 下一曲 连续跳