TextView实现文字水平滚动效果

有时候我们使用TextView显示文本,只想把所有内容用一行显示出来,但是一行又显示不完,就需要让文本实现水平滚动的效果。

具体实现方法如下:

1,实现自定义TextView并实现isFocused()方法,代码如下:

 1 public class RollTextView extends TextView{
 2 
 3     public RollTextView(Context context) {
 4         super(context);
 5     }
 6     public RollTextView(Context context, AttributeSet attrs) {
 7         super(context, attrs);
 8     }
 9 
10     public RollTextView(Context context, AttributeSet attrs, int defStyle) {
11         super(context, attrs, defStyle);
12     }
13     @Override
14     public boolean isFocused() {
15         return true;
16     }
17 }

2,为自定义TextView设置singleLine,ellipsize,marqueeRepeatLimit属性,布局文件代码如下:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 
11     <com.tony.test.RollTextView
12               android:id="@+id/tv_test"
13               android:layout_width="wrap_content"
14               android:layout_height="wrap_content"
15               android:singleLine="true"
16               android:ellipsize="marquee"
17               android:marqueeRepeatLimit="marquee_forever"
18               android:text="TextView文字滚动TextView文字滚动TextView文字滚动TextView文字滚动TextView文字滚动TextView文字滚动" />
19 </RelativeLayout>

就这样简单的实现了文字滚动效果了,如下图。

 

原文地址:https://www.cnblogs.com/TonyChan7/p/3809983.html