android自定义之可滚动的TextView

最近在看黑马的手机安全卫士的视频教程时,看到了自定义可滚动的TextView,因此就想自己把方法步骤记下来,一方面是希望可以为广大读者提供一个参考,另一方面也方便自己日后复习。

android当中,如果想要使文字显示出一种跑马灯效果的话,此时就应该自己定义一个继承自TextView的类,然后实现TextView类三个未实现的方法,并且重写isFocused()方法,并将此结果的返回值设置为true。具体步骤如下:

1)自定义一个继承自TextView的子类,并实现其未实现的三个构造方法,同时覆写isFocused()方法,具体代码如下所示:

package com.zjh.cmt.activity;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * 自定义一个TextView,使其一创建就具有焦点
 * 
 * @author abner
 * 
 */
public class MarqueeTextView extends TextView {

	public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public MarqueeTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MarqueeTextView(Context context) {
		super(context);
	}

	/**
	 * 此方法默认返回值为false,在此处将其返回为true就可以使TextView一创建就具有焦点
	 */
	@Override
	public boolean isFocused() {
		return true;
	}

}

2)在需要使用可滚动的TextView的布局文件中引用自定义TextView的全路径,并添加android:singleLine = “true”和android:ellipsize="marquee"两个属性即可,具体代码如下所示:



    

此时,一个自定义的可滚动的TextView就完成了。

此外,经过本人多次试验,也可以直接在TextView中设置如下两个属性也可实现可滚动的TextView效果。

android:focusable="true"

android:focusableInTouchMode="true"




你可能感兴趣的:(android)