前言
由于项目需要实现跑马灯效果,测试了好几个办法才成功。所以特此记录一下。
方法
1.在布局文件加入:
代码语言:javascript复制 android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
2.重写TextView,使isFocused()返回true
代码语言:javascript复制public class MarqueeTextView extends TextView {
public MarqueeTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
public MarqueeTextView(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
// TODO Auto-generated constructor stub
}
@Override
public boolean isFocused() {
return true;
}
}
我发现有的布局只需要第一中方法,但是有的布局却需要同时两种方法集合一起才生效。可能是我的布局含有动画,比较复杂。