TextView实现跑马灯效果
2012-12-18 10:59
441 查看
当要输入的文字长度大于TextView本身的长度时,就可以考虑用跑马灯的方式来显示文字。
<TextView
android:id="@+id/tvCWJ"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:singleLine="true"<!-- 单行显示,跑马灯只要单行显示时才有效果 -->
android:focusable="true"<!-- 只有在textView获得焦点时跑马灯才有效果 -->
android:ellipsize="marquee"<!-- 设置为marquee跑马灯形式 -->
marqueeRepeatLimit="marquee_forever"<!-- 表示走马灯的滚动效果重复的次数,你可以填一个自然数.marquee_forever代表一直重复 -->
android:textColor="#FF0000"
android:text="大家注意到在TextView中我添加了三行蓝色的字段,其中singleLine表示TextView中文本为
单行文本如果你在你的程序中设置了setHorizontallyScrolling(true)在这你可以不写了,
接下来就是我们的关键之处了此语句表示我们将TextView设置为了一个走马灯,marqueeRepeatLimit=
表示走马灯的滚动效果重复的次数,你可以填一个自然数。大家注意到在TextView中我添加了三行蓝色的字段,其中singleLine表示TextView中文本为
单行文本如果你在你的程序中设置了setHorizontallyScrolling(true)在这你可以不写了,
接下来就是我们的关键之处了此语句表示我们将TextView设置"
/>
但是,TextView的滚动显示,有一个前提,TextView需要必须处于focus状态。当TextView失去焦点的时候,TextView将会停止滚动。如何实现无限滚动,当然也需要从焦点入手。当然,直接requestFocus()是不行的,这里我使用了另外一个方法。观察到textView有一个名为isFocused()的方法,文档中的注释是这样的:
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
}
<TextView
android:id="@+id/tvCWJ"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:singleLine="true"<!-- 单行显示,跑马灯只要单行显示时才有效果 -->
android:focusable="true"<!-- 只有在textView获得焦点时跑马灯才有效果 -->
android:ellipsize="marquee"<!-- 设置为marquee跑马灯形式 -->
marqueeRepeatLimit="marquee_forever"<!-- 表示走马灯的滚动效果重复的次数,你可以填一个自然数.marquee_forever代表一直重复 -->
android:textColor="#FF0000"
android:text="大家注意到在TextView中我添加了三行蓝色的字段,其中singleLine表示TextView中文本为
单行文本如果你在你的程序中设置了setHorizontallyScrolling(true)在这你可以不写了,
接下来就是我们的关键之处了此语句表示我们将TextView设置为了一个走马灯,marqueeRepeatLimit=
表示走马灯的滚动效果重复的次数,你可以填一个自然数。大家注意到在TextView中我添加了三行蓝色的字段,其中singleLine表示TextView中文本为
单行文本如果你在你的程序中设置了setHorizontallyScrolling(true)在这你可以不写了,
接下来就是我们的关键之处了此语句表示我们将TextView设置"
/>
但是,TextView的滚动显示,有一个前提,TextView需要必须处于focus状态。当TextView失去焦点的时候,TextView将会停止滚动。如何实现无限滚动,当然也需要从焦点入手。当然,直接requestFocus()是不行的,这里我使用了另外一个方法。观察到textView有一个名为isFocused()的方法,文档中的注释是这样的:
/** * Returns true if this view has focus * * @return True if this view has focus, false otherwise. */也就是说当TextView拥有焦点的时候会返回true.同时可以发现,TextView中很多地方都是直接调用这个方法作为判断条件,最关键的,这个方法被声明为public! ok, 实现方法已经初现端倪了! 样例如下: public class MyTextView extends TextView{
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
}
相关文章推荐
- XML 实现 TextView的跑马灯效果
- Android---14---TextView实现跑马灯效果
- android textview原生态跑马灯效果实现以及其缺点记录
- Android TextView实现可暂停的跑马灯效果
- 使用TextView实现跑马灯效果
- TextView实现跑马灯效果 就这么简单!
- Android 中TextView中跑马灯效果的实现方法
- android TextView实现跑马灯效果
- Android实现多个TextView同时显示跑马灯效果
- Android自定义不需要焦点的TextView以实现跑马灯效果
- Android中使用TextView实现文字跑马灯效果
- 安卓控件使用系列4:TextView实现跑马灯效果
- Android中TextView不获取焦点可以实现跑马灯的效果
- 使用TextView实现跑马灯效果
- TextView实现跑马灯效果
- 初学者---Android TextView实现跑马灯效果
- Android TextView 实现跑马灯效果
- Android:TextView不获取焦点可以实现跑马灯的效果
- TextView ellipsize=“marquee” 跑马灯效果不能实现,解决
- recycleView中实现textView跑马灯效果