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>

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

 TextView实现文字水平滚动效果

 

你可能感兴趣的:(textview)