首页 > 移动平台 > 详细

Android自定义TextView实现跑马灯功能

时间:2015-03-26 17:39:21      阅读:547      评论:0      收藏:0      [点我收藏+]

首先我们要实现走马灯这样一个效果,通常来说都是在TextView这个控件中来实现的,而且其中的文字一定是单行显示,如果多行显示,那走马灯效果也就失去了存在的意义。谈到TextView的跑马灯,我们首先应该想到android:ellipsize="marquee"(start、end属性表示前或者后省略),而如果要在view中实现跑马灯功能,就需要TextView改为Button,开启触控焦点在开启状态android:focusableInTouchMode="true",否则是不会看到跑马灯效果的。

未用自定义TextView实现跑马灯代码:

<Button 
        android:focusableInTouchMode="true"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="未使用自定义TextView的跑马灯效果"
        android:textSize="18sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

下面使用自定义TextView实现跑马灯:

先编写自定义TextView

package com.zebra.mobilesafe.ui;

import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewDebug.ExportedProperty;
import android.widget.TextView;

/**
 * 自定义一个TextView,是他天生就有焦点
 * @author Administrator
 *
 */
public class FocusTextView extends TextView {

	public FocusTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
	}

	public FocusTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public FocusTextView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	/**
	 * 欺骗Android系统,让当前没有焦点的判断为true,实现button效果
	 */
	@Override
	@ExportedProperty(category = "focus")
	public boolean isFocused() {
		// TODO Auto-generated method stub
		return true;
	}
}
然后在android的xml文件中,引用自定义实现,路径要是类的绝对路径

    <com.zebra.mobilesafe.ui.FocusTextView
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="使用自定义TextView的跑马灯效果"
        android:textSize="18sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
这样就可以在TextView中实现跑马灯效果了。




Android自定义TextView实现跑马灯功能

原文:http://blog.csdn.net/zeb_perfect/article/details/44652399

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!