`
java-mans
  • 浏览: 11453464 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

一、新建一个Marquee类继承TextView

由于默认的跑马灯效果是需要TextView的方法isFocused为true的时候才会跑动的,而默认时,只有一个TextView处于focused状态,解决办法就是让所有要实现跑马灯效果的TextView都处于focused状态,因此要改写TextView类。于是新建一个Marquee类:

package org.shuxiang.test;


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)
	{
		// TODO Auto-generated method stub
		if(focused) super.onFocusChanged(focused, direction, previouslyFocusedRect);
	}
	
	@Override
	public void onWindowFocusChanged(boolean hasWindowFocus)
	{
		// TODO Auto-generated method stub
		if(hasWindowFocus) super.onWindowFocusChanged(hasWindowFocus);
	}
	
	@Override
	public boolean isFocused()
	{
		return true;
	}
}


二、布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="vertical" >
    
    <LinearLayout android:orientation="vertical"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content">
    
		<org.shuxiang.test.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:focusableInTouchMode="true"
			android:marqueeRepeatLimit="marquee_forever"
			android:scrollHorizontally="true"
			android:text="跑马灯文字1跑马灯文字1跑马灯文字1跑马灯文字1" />
   

    	<org.shuxiang.test.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:focusableInTouchMode="true"
			android:marqueeRepeatLimit="marquee_forever"
			android:scrollHorizontally="true"
			android:text="这里是第2个跑马灯噢!这里是第2个跑马灯噢!这里是第2个跑马灯噢!" />
			
		<org.shuxiang.test.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:focusableInTouchMode="true"
			android:marqueeRepeatLimit="marquee_forever"
			android:scrollHorizontally="true"
			android:text="》》》第3个跑马灯》》》第3个跑马灯》》》第3个跑马灯" />
	
    </LinearLayout>
</LinearLayout>

三、调用布局文件显示:

package org.shuxiang.test;
import android.app.*;
import android.os.*;
public class MainActivity extends Activity
{
	@Override	 
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
    }
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics