Android中的TextView有属性可以直接设置TextView的跑马灯效果 这里我不多介绍 但这种实现只是在TextView获得焦点的时候才会达到效果 如果失去焦点 就不太欢乐了
那么 思路就有了 我们重写一个TextView让他一直都获得焦点 是不是就可以实现一直跑动了呢
我们新建一个类Focusedtrue4TV.java,让他继承TextView添加他的构造方法后覆写他父类的方法isFocused();
如下:
public class Focusedtrue4TV extends TextView {
public Focusedtrue4TV(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean isFocused() {
// TODO Auto-generated method stub
return super.isFocused();
}
}
我们可以看到isFocused()方法返回的是调用父类的isFocused();
直接让他返回true就可以实现让TextView永远都是获得焦点的状态进而实现我们想要的的效果
如下:
public class Focusedtrue4TV extends TextView {
public Focusedtrue4TV(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean isFocused() {
// TODO Auto-generated method stub
return true;
}
}
这时 在我们需要用到这个效果的地方添加上这个我们自定义的控件 然后在控件上加上如下两个属性
android:singleLine="true"
android:ellipsize="marquee"
即可 当然此方法在ListView中依然可以应用!