您的位置:首页 > 移动开发 > Android开发

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

2012-05-11 20:08 776 查看
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);
}
}


 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息