有时候我们使用TextView显示文本,只想把所有内容用一行显示出来,但是一行又显示不完,就需要让文本实现水平滚动的效果。
具体实现方法如下:
1,实现自定义TextView并实现isFocused()方法,代码如下:
public class RollTextView extends TextView{ public RollTextView(Context context) {
super(context);
}
public RollTextView(Context context, AttributeSet attrs) {
super(context, attrs);
} public RollTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
}
2,为自定义TextView设置singleLine,ellipsize,marqueeRepeatLimit属性,布局文件代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <com.tony.test.RollTextView
android:id="@+id/tv_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:text="TextView文字滚动TextView文字滚动TextView文字滚动TextView文字滚动TextView文字滚动TextView文字滚动" />
</RelativeLayout>
就这样简单的实现了文字滚动效果了,如下图。