看完XML文件发现,跑马灯的效果已经实现了啊,
android:Ellipsize = "marquee"
android:marqueeRepeatLimit = "marquee_forever"
android:singleLine = "true"
怎么会没有效果呢??? 后来发现是需要显示的View没有获得焦点导致的问题,怎么样在没有获得焦点的情况下实现跑马灯效果呢最简单也是网上最常见的方法就是重写一个类继承自TextView,代码如下:
public class MyDefinedText extends TextView {
public MyDefinedText (Context context ) {
super(context );
}
public MyDefinedText (Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyDefinedText (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override//为了获得焦点
public boolean isFocused() {
return true;
}
@Override//可以自己比较一下效果,自己动手收获多多~~
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
}
}
最后一步,修改XML文件中的相应地方代码即可(Dialer_contacts_item.xml (apps\contacts\res\layout) )--- 需要设置跑马灯效果的地方
如果还是没有效果,还需要看看实际代码中是否还设置了其他的属性:比如最大行...等等。
希望能对你有点点帮助。