[转]Android实现多个跑马灯效果,多个文本框TextView的跑马灯
出处:http://blog.csdn.net/aminfo/article/details/7558550
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); } }

浙公网安备 33010602011771号