`
wlei.core
  • 浏览: 3247 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android不需要焦点的TextView跑马灯效果

阅读更多

大家可能都尝试过TextView的跑马灯效果,效果很酷,但是有一个缺陷,TextView只能在获得焦点的情况下才能显示跑马灯效果。我原先试过重写onDraw()函数,运行成功,但是代码太过烦琐,时间长了自己都懒得看了,一直想找个好的方法把它剃掉,后来无意中遇到下面的方法,给大家推荐一下:
方法依然是重写TextView,但是关键看重写哪里,(后悔当初没好好看就直接重写onDraw()了):

public class ScrollingTextView extends TextView {
 
    public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
 
    public ScrollingTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public ScrollingTextView(Context context) {
        super(context);
    }
    @Override
    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
        if(focused)
            super.onFocusChanged(focused, direction, previouslyFocusedRect);
    }
 
    @Override
    public void onWindowFocusChanged(boolean focused) {
        if(focused)
            super.onWindowFocusChanged(focused);
    }
 
 
    @Override
    public boolean isFocused() {
        return true;
    }
 
}


关键的关键就是在isFocused函数上,大家有空可以看看TextView的源码,上面很清楚。建议大家没事的时候多看看源码,可以从中学到很多好东西。

使用时如下,比如我的自定义类在包com.wlei.test下面:

<com.wlei.test.ScrollingTextView 
    android:text="Really Long Scrolling Text Goes Here.... ..... ............ .... ...."
    android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:id="@+id/TextView03"
    android:padding="5dip" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" />



原文详见:http://androidbears.stellarpc.net/?p=185

 

分享到:
评论

相关推荐

    Android基于TextView不获取焦点实现跑马灯效果

    主要介绍了Android基于TextView不获取焦点实现跑马灯效果,结合实例形式分析了Android基于TextView实现跑马灯的功能与布局相关技巧,需要的朋友可以参考下

    textview(跑马灯效果)文字长短不限循环播放

    textview显示跑马灯效果,使用的是继承的方法onDraw不停地绘制 优点: 1.文字长短不限哦 2.不用非得获取焦点哦

    Android用过TextView实现跑马灯效果的示例

    Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1、android:ellipsize=”marquee”; 2、TextView必须单行显示,且内容必须超出TextView宽度; 3、TextView要获得焦点才能滚动。 xml代码如下...

    自定义TextView跑马灯效果可控制启动/停止/速度/焦点

    Android自带的跑马灯效果不太好控制,不能控制速度,不能即时停止和启动,而且还受焦点的影响蛋疼不已。由于项目需求需所以自己写了一个自定义的TextView,感兴趣的朋友可以了解下

    TextView实现跑马灯效果 就这么简单!

    1、TextView调出跑马灯效果 2、TextView获取焦点  第一种: 1、TextView调出跑马灯效果 android:ellipsize=”marquee” 2、TextView获取焦点 android:focusable=”true” android:focusableInTouchMode=”true” ...

    Android基于TextView属性android:ellipsize实现跑马灯效果的方法

    本文实例讲述了Android基于TextView属性android:ellipsize实现跑马灯效果的方法。分享给大家供大家参考,具体如下: Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1、android:ellipsize=”marquee...

    Android 中TextView中跑马灯效果的实现方法

    条件: 1、android:ellipsize=”marquee” 2、TextView必须单行显示,即内容必须超出TextView大小 3、TextView要获得焦点才能滚动 mTVText.setText(...TextView还可以设置跑马灯效果的滚动次数 android:marqueerep

    Android 实现不依赖焦点和选中的TextView跑马灯

     之前有写一篇TextView跑马灯的效果,后来实际项目中有发现新的问题,比如还是无法自动跑,文本超过了显示区域就截取的问题,今天换了一种思路来实现,更简单更好用。 正文  代码实现: public class ...

    跑马灯效果

    真正的跑马灯效果,实现原理就是设置textView为singleLine,android :ellipsize =marquee,同时新建一个自定义TextVIew让textView获得焦点

    Android中设置文字跑马灯效果不动

    在跟着B站Up主天哥在奔跑,学习Android的TextView控件时,想要实现一个跑马灯效果,但是按照视频中的代码发现文字是不会动的。视频中的代码如下: 然后经过弹幕的提醒,可能是跑马效果所需要的焦点被其他控件抢走...

    android 跑马灯

    利用TextView控件实现跑马灯效果,重点实在activity中调用TextView的textView.setMovementMethod(LinkMovementMethod.getInstance()) 方法。

    Android开发EditText属性.txt

    ”marquee” ——以跑马灯的方式显示(动画横向移动) android:freezesText设置保存文本的内容以及光标的位置。参见:这里。 android:gravity设置文本位置,如设置成“center”,文本将居中显示。 android:hintText...

    老罗android视频开发源码和ppt经典

    6.4 TextView实现跑马灯效果 6.5 EditText输入表情图像 6.6 EditText中输入特定的字符 6.7 AutoCompleteTextView完成输入 6.8 Button按钮的焦点变化 6.9 Button图文混排的按钮 6.10 RadioButton单选按钮的使用 6.11 ...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--TextView单行跑马灯效果 |--TextView虚拟获得焦点 |--uploadServlet |--uri之表示资源resource |--ViewPage的使用 |--view中的tag用法之存储对象 |--view常用属性 |--xml常用属性 |--xml文件的pull解析与序列化...

Global site tag (gtag.js) - Google Analytics