ScrollText.xml
<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=".MainActivity" > <com.example.textviewdemo.ScrollText android:id="@+id/textview" android:clickable="true" android:ellipsize="marquee" android:focusable="true" android:singleLine="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="猫咪:一辈子都在躲雨,雨会不会很难过。 ——走饭 ——2011.01.23 7:54" /> </RelativeLayout>
ScrollText.java
package com.example.textviewdemo; import android.content.Context; import java.util.ArrayList; import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.FontMetrics; import android.graphics.Paint.Style; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.WindowManager; import android.widget.TextView; public class ScrollText extends TextView{ public ScrollText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public ScrollText(Context context, AttributeSet attrs) { super(context, attrs); } public ScrollText(Context context) { super(context); } @Override /** * 直接返回 true,就是告诉系统,我有焦点 */ public boolean isFocused() { return true; } }