【转】TextView跑马灯效果实现方法

1. 用TextView的ellipsize属性实现

原文

在TextView中实现我们的走马灯效果,需要两个属性 android:singleLine=”true”,以及 android:ellipsize=”marquee”
另外实现跑马灯还需要TextView控件获得当前的焦点。
设置 android:focusable和 android:focusableInTouchMode两个属性为true。布局文件设置如下:

<TextView  
        android:layout_width="100dip"  
        android:layout_height="wrap_content"  
        android:layout_gravity="center"  
        android:text="走马灯效果的演示"   
        android:singleLine="true"  
        android:ellipsize="marquee"  
        android:focusable="true"  
        android:focusableInTouchMode="true"  
        />

这种方法的缺点是一旦TextView失去焦点(比如点击其他控件),跑马灯效果就会停止。而且无法同时显示多个TextView跑马灯。

2. 重写TextView的isFocused方法获取焦点

原文

针对上一个方案中TextView失焦时跑马灯失效的问题,可以重写TextView类的isFocused方法来使控件获得焦点。方法原型:

public boolean isFocused ()
方法描述:Returns true if this view has focus

实现自己的TextView,然后重写isFocused方法强制其返回true,可在失焦的情况下保持跑马灯效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值