在同一个layout里,多个textview单行滚动显示(跑马灯效果)

来源:互联网 发布:哲学作家 知乎 编辑:程序博客网 时间:2024/05/19 03:29
平时要想使textview单行滚动显示,必须设置以下属性,才能工作
<TextView        android:layout_width="wrap_content"        android:layout_height="0dp"        android:layout_weight="1"        android:gravity="center"        android:focusable="true"        android:ellipsize="marquee"          android:marqueeRepeatLimit="marquee_forever"          android:singleLine="true"         android:textColor="#000000"        android:textSize="20dp"        android:text="@string/marquee_text"/>

问题来了,如果在同一个activity里需要使两个textivew单行滚动显示,都设置了以上属性,系统不知道到底哪个textview获取了焦点,会造成冲突,没有达到预期效果。所以,就得单独写一个MarqueeTextView extends TextView的方法,使每一个需要滚动显示的textview都要focusable为true,下面是继承TextView的MarqueeTextView类文件

public class MarqueeTextView extends TextView {    public MarqueeTextView(Context context) {        super(context);        // TODO Auto-generated constructor stub    }    public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);        // TODO Auto-generated constructor stub    }    public MarqueeTextView(Context context, AttributeSet attrs) {        super(context, attrs);        // TODO Auto-generated constructor stub    }    @Override    public boolean isFocused() {        // TODO Auto-generated method stub        return true;    }}

在layout里,直接如下使用

<com.example.marqueetext.MarqueeTextView    android:layout_width="wrap_content"    android:layout_height="0dp"    android:layout_weight="1"    android:gravity="center"    android:ellipsize="marquee"      android:marqueeRepeatLimit="marquee_forever"      android:singleLine="true"     android:textColor="#000000"    android:textSize="20dp"    android:text="@string/marquee_text" />

欢迎光临gaoxiaomin123456的博客!

源代码下载地址:http://download.csdn.net/download/gaoxiaomin123456/9295223

1 0
原创粉丝点击