走马观灯效果(让字滚动的效果)
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自带的返回效果第二行文字将无法滑动。