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);    }}


更多相关文章

  1. Android(安卓)UI 的几个简单技巧
  2. Android(安卓)百分比布局支持库介绍
  3. Fragment实现底部功能栏
  4. Android封装自定义Toast
  5. Android(安卓)学习之路一:Activity之间传递数据的四种方式
  6. Android中如何优雅地自定义一个View
  7. android Burron
  8. 自定义简单的ProgressBar
  9. popupwindow练习

随机推荐

  1. 函数作用域与闭包-回调函数-函数的多值返
  2. 使用grid布局简单仿PHP中文网首页
  3. Python爬虫进阶必备 | 关于某汽车交易网
  4. 学会它再也不怕编辑数学公式
  5. 到公司做华为认证网络工程师有发展前途吗
  6. Web | 什么是 RPC ?
  7. 5G网络工程师是不是需要长期出差
  8. 【翻译】JavaScript引用是如何工作的?
  9. 如果在运营商做核心网网络工程师的话,工资
  10. 【源码实例】纯CSS水波纹效果和动画气泡