首页 > 代码库 > 走马观灯效果(让字滚动的效果)

走马观灯效果(让字滚动的效果)

1.首先是在布局layout中:

     android:singleLine="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
这四句是必备的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.rundemo.MainActivity" >

//将TextView改为包名 <com.example.rundemo.marque android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:marqueeRepeatLimit="marquee_forever" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:text="一只青蛙一张嘴,两只青蛙八条腿,扑通扑通跳水里。" /> <com.example.rundemo.marque android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView2" android:marqueeRepeatLimit="marquee_forever" android:layout_marginTop="20dp" android:singleLine="true" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:text="一只青蛙一张嘴,两只青蛙八条腿,扑通扑通跳水里。" /> </RelativeLayout>

 2.然后再新建一个类:

 1 package com.example.rundemo;
 2 
 3 import android.content.Context;
 4 import android.util.AttributeSet;
 5 import android.widget.TextView;
 6 
 7 public class marque extends TextView {
 8     public marque(Context context, AttributeSet attrs, int defStyleAttr) {
 9         super(context, attrs, defStyleAttr);
10         // TODO Auto-generated constructor stub
11     }
12 
13     public marque(Context context, AttributeSet attrs) {
14         super(context, attrs);
15         // TODO Auto-generated constructor stub
16     }
17 
18     public marque(Context context) {
19         super(context);
20         // TODO Auto-generated constructor stub
21     }
22     @Override
23     public boolean isFocused() {
24         // TODO Auto-generated method stub
25         //return super.isFocused();
26         return true;
27     }
28 
29 }

获取焦点方法isFocused()一定要有返回值,且为真。如果用eclipse自带的返回效果第二行文字将无法滑动。

走马观灯效果(让字滚动的效果)