Android TextView 横向滚动(跑马灯效果)

Android TextView 中当文字比較多时希望它横向滚动显示,以下是一种亲測可行的方法。

效果图:


1.自己定义TextView,重写isFocused()方法返回true,让自己定义TextView一直处于获取焦点状态。

package com.example.shen.marqueedemo;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * Created by shen on 2015/8/19.
 */
public class MarqueeTextView extends TextView {

    public MarqueeTextView(Context context) {
        super(context);
    }

    public MarqueeTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean isFocused(){
        return true;
    }

}
2.布局文件

android:sigleLine="true" //单行

android:ellipsize="marquee" //以跑马灯的方式显示(动画横向移动)

android:marqueeRepeatLimit="marquee_forever" //一直滚动

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.example.shen.marqueedemo.MarqueeTextView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="hello_world! hello_world! hello_world! "
        android:layout_centerInParent="true"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:marqueeRepeatLimit="marquee_forever"/>

</RelativeLayout>




posted @ 2017-06-23 12:27  gccbuaa  阅读(3747)  评论(0编辑  收藏  举报