`
wlei.core
  • 浏览: 3308 次
  • 性别: 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跑马灯效果是通过结合XML布局属性和代码控制实现的,它为展示长文本提供了灵活的解决方案,特别是在有限的空间内。理解和掌握这个功能对于Android开发者来说非常有用,可以提升用户体验...

    android三种方式实现TextView跑马灯效果

    本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize`属性 #### 1.1 XML布局配置 首先,在XML布局文件中,可以通过设置`ellipsize`属性为`marquee`来开启跑马灯效果。同时,`singleLine...

    android textview 无焦点 跑马灯 水平滚动

    在创建APK程序时,你需要将这个包含跑马灯效果的TextView集成到你的Activity或Fragment中,并确保其他必要的依赖和资源已添加。你可以使用Android Studio进行编译和打包,生成的APK文件可以直接在Android设备上安装...

    实现textView 跑马灯效果

    如果默认的跑马灯效果不能满足需求,可以创建一个自定义的TextView。通过继承`TextView`类并重写`onDraw()`方法,可以自定义跑马灯的滚动行为。这种方法更灵活,但相对复杂,需要对Android绘图有深入理解。 5. **...

    Android ListView,TextView跑马灯Demo

    注意,为了使跑马灯效果生效,`TextView`必须是单一的、不可编辑的行,并且需要获取焦点。可以通过在代码中调用`requestFocus()`来为`TextView`请求焦点。 接下来,我们要将跑马灯效果应用到ListView的每一项。在...

    简单的textview 跑马灯效果 可直接使用

    以上就是关于在Android中实现TextView跑马灯效果的主要技术点。在实际项目中,开发者可以根据需求调整这些设置,以达到理想的跑马灯滚动效果。文件"newZx1"可能包含了一个示例项目或代码片段,用于演示如何实现这一...

    TextView滚动,跑马灯效果终极解决方案

    通过分析这些测试,开发者可以更好地理解和掌握在不同情况下的TextView跑马灯效果,以应对实际开发中的各种需求。 总之,实现TextView的跑马灯效果需要注意焦点、宽度、延迟启动、嵌套视图等因素。通过对这些问题的...

    老罗视频代码textview跑马灯效果

    如果默认的TextView跑马灯效果不能满足需求,可以考虑自定义一个继承自TextView的类,重写`onDraw()`方法,手动实现滚动动画。 5. **性能优化** 跑马灯效果可能会消耗一定的性能,特别是对于长文本或频繁滚动的...

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

    标题“textview(跑马灯效果)文字长短不限循环播放”所描述的就是这样一个功能,即在TextView中实现一个不受文本长度限制、可以自动循环滚动的跑马灯效果,而且这个效果不需要TextView获取焦点也能运行。...

    textview跑马灯效果

    6. **自定义滚动**:如果默认的跑马灯效果不符合需求,可以考虑使用自定义View或者动画库来实现更复杂的滚动效果,例如改变滚动速度、方向或添加动画过渡等。 7. **兼容性问题**:在Android的不同版本和设备上,...

    android TextView跑马灯

    以上就是关于Android中TextView跑马灯效果的基本介绍和实现方法。通过合理设置属性和编写适当的代码,我们可以创建出满足需求的跑马灯效果。同时,自定义的MarqueeTextView可能会提供更丰富的定制选项,以适应各种...

    特效-textView跑马灯

    要实现跑马灯效果,我们需要借助两个关键属性:`android:singleLine`(或`android:maxLines=1`)和`android:ellipsize="marquee"`。`singleLine`属性确保文本只显示一行,`ellipsize="marquee"`则激活跑马灯效果。 ...

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

    总结来说,要实现Android中的TextView跑马灯效果,我们可以自定义一个TextView子类,并重写某些方法来模拟焦点,然后在布局文件中设置相关属性,如`ellipsize`、`focusable`等。这样,用户即使不点击或聚焦在...

    android跑马灯效果,失去焦点也可以实现

    总的来说,实现Android的跑马灯效果并不复杂,关键在于正确设置XML属性和处理焦点变化。这个效果可以增加用户界面的动态性,提升用户体验。通过理解上述知识点并结合实际代码,你应该能够创建一个无论是否获得焦点都...

    使用TextView实现跑马灯效果

    本教程主要围绕如何在Android中使用`TextView` 实现跑马灯效果展开。首先,我们需要了解`TextView` 的基本属性和设置方法。在XML布局文件中,我们可以这样创建一个`TextView`: ```xml &lt;TextView android:id="@+id...

    android TextView实现跑马灯效果

    `android:ellipsize="marquee"` 用于实现跑马灯效果,`android:focusable="true"` 和 `android:focusableInTouchMode="true"` 用于让 TextView 获得焦点,以便实现跑马灯效果。 在布局文件中,可以直接使用以下代码...

    TextView跑马灯、闪烁和跳动动画

    然而,为了增强用户体验,开发者常常会为TextView添加各种动画效果,如跑马灯、闪烁和跳动等。这些动态效果可以吸引用户的注意力,使得应用更加生动有趣。 首先,让我们来讨论“跑马灯”效果。跑马灯,又称为滚动...

    TextView跑马灯效果2

    【标题】:“TextView跑马灯效果2” 在Android开发中,TextView是我们常用的一个组件,用于显示文本信息。而“跑马灯”效果则是TextView的一种特殊显示方式,它可以使文本在达到TextView宽度边界后,继续从左侧滚动...

    TextView跑马灯效果

    首先,实现`TextView`跑马灯效果的关键在于设置两个属性:`android:singleLine`(或`android:maxLines="1"`)和`android:ellipsize`。`singleLine`属性使`TextView`只显示一行文本,`ellipsize`属性则定义了当文本...

    androidTextView实现跑马灯的效果

    2. `android:focusable="true"`:为了使跑马灯效果生效,`TextView`需要获取焦点。通过设置`focusable`为`true`,允许`TextView`可以被选中并获得焦点。 3. `android:marqueeRepeatLimit="marquee_forever"`:这个...

Global site tag (gtag.js) - Google Analytics