一、原理
- 让TextView的文字滚动起来的原理非常简单,只要让该TextView永远获得焦点,文字就会滚动起来。
二、实现方法
- 定义一个FocusTextView继承TextVeiw,重写其isFocused()方法即可。
package com.example.administrator.mobilesafe.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* Created by Administrator on 2016/12/3.
* 重写获取焦点的方法,自定义获取焦点的TextView
*/
public class FocusTextView extends TextView {
//new对象时调用
public FocusTextView(Context context) {
super(context);
}
//由系统调用
public FocusTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
//有系统调用,带样式文件
public FocusTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//判断是否获得焦点,让其永远返回true,永远获取焦点
@Override
public boolean isFocused() {
return true;
}
}
- 调用该自定义控件
<!--android:ellipsize="marquee" 设置为跑马灯效果-->
<!-- android:marqueeRepeatLimit="marquee_forever" 滚动次数,一直滚动-->
<!--android:singleLine="true" 单行显示-->
<com.example.administrator.mobilesafe.view.FocusTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:padding="5dp"
android:singleLine="true"
android:text="夏天夏天悄悄过去,留下小秘密,多甜蜜,多甜蜜,怎能忘记你,啦啦啦啦啦啦啦"
android:textColor="#000"/>