参考 android TextView实现滚动显示效果 - ZHOU YANG - 博客园 http://www.cnblogs.com/zhoudayang/p/5289833.html实现的,十分感谢
- 为了解决冲突问题,自定义继承自textview的类
/**
* <TextView
* android:ellipsize="marquee"
* android:focusable="true"
* android:focusableInTouchMode="true"/>
* 注意上述的3个属性,按照上述设置这3个属性,此TextView空间就会滚动显示文本内容,保证了文本的完全显示。
* 但是,上述方式只适用于界面中只有1个TextView的情况,当一个界面之中有多个TextView设置了相同属性,
* 有且只有一个控件会滚动显示,其他TextView控件则不会滚动显示。
* 造成这种情况的原因是TextView空间在滚动显示的时候必须获得焦点,但是默认情况下,
* 只能有一个TextView空间获得焦点,所以造成上述情况。
* 解决的方法很简单,重写类TextView的方法 isFocused(),使其总是返回true,即总是属于被选中的状态,
* 这样就能够保证多个TextView控件都有滚动显示的效果。
*/
public class MarqueeTextView extends TextView {
public MarqueeTextView(Context context) {
super(context);
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
}
2.xml布局
<com.lotus.looppicturesdemo.MarqueeTextView
android:id="@+id/tv_arcMsg"
android:textSize="20sp"
android:layout_margin="10dp"
android:ellipsize="marquee"
android:layout_marginLeft="5dp"
android:layout_centerVertical="true"
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/ic_msg"
android:scrollHorizontally="true"
android:gravity="center_vertical" />
注解:android:ellipsize=”marquee” 类似于跑马灯,无省略号,还有属性start、end,分别是省略号在前面、后面;android:marqueeRepeatLimit=”marquee_forever”一直滚动
3.直接在activity中给textview设置文字,运行起来就是一直滚动的效果。