方法一:(只能实现单个TextView的跑马灯效果)
在TextView添加以下控件
android:singleLine="true"只能单行,超出的文字显示为"..."
android:ellipsize="marquee"省略号没有,但没有跑马灯效果
android:focusable="true"
android:focusableInTouchMode="true"
方法二:(可以实现多行TextView的跑马灯效果)
自定义一个类继承TextView,实现默认的三种构造函数,重写isFocused()方法,返回true
在布局文件中将TextView改为(包名+类名)com.imooc.marqueetextviewdemo.MarqueeText
解析:
方法二中两个TextView都能够实现跑马灯效果是因为重写了isFocused()方法返回true,强制让TextView都focused;而方法一中,第一个TextView获得了焦点,而第二个TextView没有获得焦点,无法实现跑马灯效果
问题:
滚动一段时间后会自己停: android:marqueeRepeatLimit="marquee_forever"
Tips:
px,dp(dip),sp
1.在开发中不建议使用px,px不能根据分辨率来进行等比缩放;
2.dp和sp都可以根据分辨率来进行等比缩放;
3.在控件中做长度大小限制时推荐使用dp,sp更多用于显示文字size;
4.在android最新的SDK中推荐使用dp