手机卫士学习06-自定义滚动的TextView实现走马灯效果
2015-01-09 15:52
330 查看
我们要使用自定义TextView实现走马灯滚动效果,如图:
对于TextView
android:singleLine="true"
android:ellipsize="marquee"
设置走马灯的效果,默认是不行的。
对于Button
android:singleLine="true"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
设置默认获得焦点是可以实现走马灯滚动的效果的,但是在TextView这样设置还是达不到预期效果。
所以,想要TextView实现走马灯滚动字符串的效果,需要我们自定义一个TextView天生就有焦点。
创建一个类FocusedTextView继承TextView,并复写三个构造方法和isFocused方法
在isFocused方法return中设置true
return true;这样自定义的TextView默认就有了焦点,设置到布局文件中,就可以实现走马灯效果,不用设置
android:focusableInTouchMode="true"
只需要
android:singleLine="true"
android:ellipsize="marquee"
酱紫:
<com.itheima.mobilesafe.ui.FocusedTextView
android:singleLine="true"
android:ellipsize="marquee"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="快来下载最新版本啊,下载就送好吃的啊啊啊啊!快来下载最新版本啊,下载就送好吃的啊啊啊啊!"
/>
自定义滚动的TextView就这样实现了。
activity_home.xml:
FocusedTextView.java:
对于TextView
android:singleLine="true"
android:ellipsize="marquee"
设置走马灯的效果,默认是不行的。
对于Button
android:singleLine="true"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
设置默认获得焦点是可以实现走马灯滚动的效果的,但是在TextView这样设置还是达不到预期效果。
所以,想要TextView实现走马灯滚动字符串的效果,需要我们自定义一个TextView天生就有焦点。
创建一个类FocusedTextView继承TextView,并复写三个构造方法和isFocused方法
在isFocused方法return中设置true
return true;这样自定义的TextView默认就有了焦点,设置到布局文件中,就可以实现走马灯效果,不用设置
android:focusableInTouchMode="true"
只需要
android:singleLine="true"
android:ellipsize="marquee"
酱紫:
<com.itheima.mobilesafe.ui.FocusedTextView
android:singleLine="true"
android:ellipsize="marquee"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="快来下载最新版本啊,下载就送好吃的啊啊啊啊!快来下载最新版本啊,下载就送好吃的啊啊啊啊!"
/>
自定义滚动的TextView就这样实现了。
activity_home.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="55dip" android:background="#8866ff00" android:gravity="center" android:text="功能列表" android:textSize="25sp" /> <com.itheima.mobilesafe.ui.FocusedTextView android:singleLine="true" android:ellipsize="marquee" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="快来下载最新版本啊,下载就送好吃的啊啊啊啊!快来下载最新版本啊,下载就送好吃的啊啊啊啊!" /> <GridView android:verticalSpacing="15dip" android:id="@+id/gv_home_list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="35dip" android:numColumns="3" /> </LinearLayout>
FocusedTextView.java:
package com.itheima.mobilesafe.ui; import android.content.Context; import android.util.AttributeSet; import android.view.ViewDebug.ExportedProperty; import android.widget.TextView; /** * 自定义可以滚动的TextView * @author Administrator * */ public class FocusedTextView extends TextView { public FocusedTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public FocusedTextView(Context context, AttributeSet attrs) { super(context, attrs); } public FocusedTextView(Context context) { super(context); } /** * 默认有焦点 */ @Override @ExportedProperty(category = "focus") public boolean isFocused() { return true; } }
相关文章推荐
- 自定义View—实现滚动TextView(跑马灯)效果
- TextView单行显示,文字左右滚动(走马灯效果)实现条件:
- Android textview和listview实现水平自动滚动的走马灯效果
- Android自定义textview实现竖直滚动跑马灯效果
- 安卓实现走马灯效果 textview 实现字体循环滚动效果
- android自定义TextView实现安卓手机开机android文字Log的动画效果
- 自定义TextView实现跑马灯效果
- TextView 实现走马观灯 水平滚动效果
- TextView实现滚动显示的效果
- TextView实现滚动显示的效果
- [Android] TextView实现走马灯效果
- (五十)TextView文本滚动效果实现
- Android中TextView实现垂直滚动(轮换效果,非跑马灯)
- 文本内容超过TextView的长度时,实现文本内容水平滚动效果
- 自定义ViewGroup 实现拖动跟快速滚动的效果
- textview 滚动效果(自定义高度)
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- Android学习备忘020——android自定义ImageView实现缩放,回弹效果
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- 多个TextView同时实现走马灯效果