您的位置:首页 > 其它

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

2015-11-24 11:13 375 查看
平时要想使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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: