Android实现多个跑马灯效果,多个文本框TextView的跑马灯

转自:http://blog.csdn.net/aminfo/article/details/7558550

转处:http://wenku.baidu.com/link?url=NQ_JGiFDA_bsM61XVwAltf_TkCdtJ8tIoij3kQppYqRDwlXyFZt2PwR01kHTk-fO7it15m5G7N6D-CLJCmIToP4nOfzlxHrkf3XHgYZlUzu


package com.example.textviewdemo;

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

public class Marquee extends TextView {
	public Marquee(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	@Override
	protected void onFocusChanged(boolean focused, int direction,Rect previouslyFocusedRect) {
		
		if (focused)
			super.onFocusChanged(focused, direction, previouslyFocusedRect);
	}

	@Override
	public void onWindowFocusChanged(boolean hasWindowFocus) {
		
		if (hasWindowFocus)
			super.onWindowFocusChanged(hasWindowFocus);
	}

	@Override
	public boolean isFocused() {
		return true;
	}
}

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.textviewdemo.MainActivity" 
    android:orientation="vertical"> 
   <TextView 
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:textSize="20sp" 
        android:textColor="#FF0000"
         />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:autoLink="all"
        android:text="www.baidu.com\n电话:18610331796"
        android:textSize="20sp"
        />

  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
		android:text="泡泡花泡花花妈妈爸爸天天天使我们的爱,过了就不会来"
  	    android:singleLine="true"
  	    android:clickable="true"
        android:focusable="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusableInTouchMode="true"      
  		/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="车诚俊,韩静书,李光洙,刘在石,大神,金钏国,哈哈,GARY,智孝,我的野蛮王妃,宫,天国的阶梯"
        android:textSize="20sp"
        android:singleLine="true"
        android:clickable="true"
        android:focusable="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusableInTouchMode="true"
        
        />
    <LinearLayout android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content">  
      
        <com.example.textviewdemo.Marquee android:id="@+id/pmd1"  
            android:layout_width="200dip"  
            android:layout_height="wrap_content"  
            android:layout_marginLeft="10dip"  
            android:layout_marginRight="10dip"  
            android:clickable="true"  
            android:ellipsize="marquee"  
            android:focusable="false"  
            android:singleLine="true"
            android:focusableInTouchMode="true"  
            android:marqueeRepeatLimit="marquee_forever"  
            android:scrollHorizontally="true"  
            android:text="跑马灯文字1跑马灯文字1跑马灯文字1跑马灯文字1" />  
     
  
        <com.example.textviewdemo.Marquee android:id="@+id/pmd2"  
            android:layout_width="200dip"  
            android:layout_height="wrap_content"  
            android:layout_marginLeft="10dip"  
            android:layout_marginRight="10dip"  
            android:clickable="true"  
            android:ellipsize="marquee"  
            android:focusable="true"  
            android:singleLine="true"
            android:focusableInTouchMode="true"  
            android:marqueeRepeatLimit="marquee_forever"  
            android:scrollHorizontally="true"  
            android:text="这里是第2个跑马灯噢!这里是第2个跑马灯噢!这里是第2个跑马灯噢!" />  
              
        <com.example.textviewdemo.Marquee android:id="@+id/pmd3"  
            android:layout_width="200dip"  
            android:layout_height="wrap_content"  
            android:layout_marginLeft="10dip"  
            android:layout_marginRight="10dip"  
            android:clickable="true"  
            android:ellipsize="marquee"  
            android:focusable="true"  
            android:singleLine="true"
            android:focusableInTouchMode="true"  
            android:marqueeRepeatLimit="marquee_forever"  
            android:scrollHorizontally="true"  
            android:text="》》》第3个跑马灯》》》第3个跑马灯》》》第3个跑马灯" />  
      
    </LinearLayout>  
</LinearLayout> 

备注:如果重写一个类的话,在xml中需要指定该类
<span style="font-size:18px;"><com.example.textviewdemo.Marquee android:id="@+id/pmd3" </span>

onFocusChanged方法

继承自View类,该方法是焦点改变的回调方法,当某个控件重写了该方法,当焦点发生变化时,会自动调用该方法来处理焦点改变的事件

onFocusChanged(boolean focused, int direction,Rect previouslyFocusedRect)

其中focused:表示触发该事件的View是否获得了焦点,当该控件获得焦点时,focused等于true,否则等于false;

direction:表示焦点移动的方向,用数值表示

previouslyFocusedRect:表示在触发事件的View的坐票系中,前一个获得焦点的矩形区域,即表示焦点是从哪里来的,如果不可用则为null;

onWindowFocusChanged方法

继承自View类,可能 直接获取到手机屏幕的高度和宽度,当Activity的当前window获得或失去焦点时会被回调方法,当回调了这个方法时表示Activity是完全对用户可见的,当对话框弹出/消失及Activity新创建及回退等都 会调用此方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值