Android实现多个跑马灯效果,多个文本框TextView的跑马灯
16lz
2021-01-25
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);}@Overrideprotected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect){// TODO Auto-generated method stubif(focused) super.onFocusChanged(focused, direction, previouslyFocusedRect);}@Overridepublic void onWindowFocusChanged(boolean hasWindowFocus){// TODO Auto-generated method stubif(hasWindowFocus) super.onWindowFocusChanged(hasWindowFocus);}@Overridepublic 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); }}
更多相关文章
- Android(安卓)UI 的几个简单技巧
- Android(安卓)百分比布局支持库介绍
- Fragment实现底部功能栏
- Android封装自定义Toast
- Android(安卓)学习之路一:Activity之间传递数据的四种方式
- Android中如何优雅地自定义一个View
- android Burron
- 自定义简单的ProgressBar
- popupwindow练习