所谓跑马灯效果就是当文字超过控件所能容纳的空间时,在控件内滚动的效果。
走马灯的效果主要是通过android:singleLine,android:ellipsize,android:marqueeRepeatLimit,android:focusable属性来配置的。
android:singleLine="true"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
- android:singleLine=true 表示使用单行文字,多行文字也就无所谓使用Marquee效果了。
- android:marqueeRepeatLimit,设置走马灯滚动的次数。
- android:ellipsize,设置了文字过长时如何切断文字,可以有none, start,middle, end, 如果使用走马灯效果则设为marquee.
- android:focusable,Android的缺省行为是在控件获得Focus时才会显示走马灯效果
显示跑马灯效果的前提条件就是你的文本内容要比显示文本的外部组件长,即外部组件无法完整的显示内部的文本内容。
因此要实现跑马灯效果有两种设置方式:
1、layout_width=”"设置为成比文本内容短的固定值,最好不要写成wrap_content或者fill_parent。
2、如果layout_width=”"设置wrap_content或者fill_parent,那么可以增加上 android:paddingLeft="15dip",android:paddingRight="15dip"使两端的距离加大而无法全部显示文本内容,但是这有一个缺陷就是在手机的屏幕变大时,距离没有变大,外部组件又可以正常显示内部文本,于是又无法显示跑马灯效果,因此建议第一种设置为佳。
另外还可以设置滚动的次数android:marqueeRepeatLimit=”";android:marqueeRepeatLimit=”marquee_forever”表示一直滚动。
当有些情况下需要是文字一直滚动以引起用户注意,这是可以使用派生TextView,重载onFocusChanged,onWindowFocusChanged,isFocused 这三个方法。
修改一下本例,添加一个ScrollAlwaysTextView类:
public class ScrollAlwaysTextView extends TextView {
public ScrollAlwaysTextView(Context context) {
this(context, null);
}
public ScrollAlwaysTextView(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.textViewStyle);
}
public ScrollAlwaysTextView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
if (focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if (focused)
super.onWindowFocusChanged(focused);
}
@Override
public boolean isFocused() {
return true;
}
}
分享到:
相关推荐
android TextView 跑马灯效果; 具体说明可以看这里 http://blog.csdn.net/q610098308/article/details/49451537
android三种方式实现TextView跑马灯效果
主要介绍了Android TextView跑马灯效果实现方法,涉及Android布局文件中相关属性的设置技巧,非常简单实用,需要的朋友可以参考下
实现了TextView系统跑马灯效果,但当textview的长度超过指定长才有效果。
Android自带的跑马灯效果不太好控制,还必须要满足条件才能有效果,而且速度不受控制。前面我的博客中有一篇就是用Android自带的跑马灯效果的,但是基于不同的使用效果,这里在网上找到了一个更好的方法。沿用了作者...
老罗视频代码textview跑马灯效果,
一个垂直滚动TextView跑马灯效果的Demo,效果很棒
ListView每项跑马灯效果,TextView跑马灯自己写的Demo
主要为大家详细介绍了android TextView实现跑马灯效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
androidTextView实现跑马灯的效果
Android文字跑马灯效果,TextView的文字跑马灯效果
主要介绍了Android TextView跑马灯效果实现方法,涉及Android布局文件中相关属性的设置技巧,非常简单实用,需要的朋友可以参考下
textview显示跑马灯效果,使用的是继承的方法onDraw不停地绘制 优点: 1.文字长短不限哦 2.不用非得获取焦点哦
TextView循环改变大小的跑马灯效果
主要为大家详细介绍了Android自定义TextView跑马灯效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Android TextView实现跑马灯效果的具体代码,供大家参考,具体内容如下 当Layout中只有一个TextView需要实现跑马灯效果时,操作如下。 在Layout的TextView配置文件中增加 android:ellipsize...
自定义TextView实现竖直跑马灯效果,特殊字符串改变颜色
android中TextView控件的一些常用效果:HTML设置样式、TextView点击事件,TextView跑马灯效果,TextView显示图片效果。
Android高级应用源码-跑马灯效果MarqueTextView textview 循环 跑马灯效果.zip