1. 程式人生 > >跑馬燈的簡單實現

跑馬燈的簡單實現

Android的跑馬燈有三種實現方式

首先第一個是

<TextView
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="大王讓我來巡山,尋了南山尋北山"
        android:background="@color/colorAccent"
        android:textSize="30sp"
        android:textColor="#ffffff"
        android:padding="10dp"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

直接在佈局檔案中使用這個textview即可,其中的關鍵程式碼是:

android:singleLine="true" //設定文字只顯示一行
         android:ellipsize="marquee"// 設定無法顯示的文字的顯示方式為跑馬燈
         android:marqueeRepeatLimit="marquee_forever"//設定跑馬燈的重複方式
         android:text="大王讓我來巡山,尋了南山尋北山"//注意文字一定要長,否則無效果
         android:focusableInTouchMode="true" //通過觸控方式獲取焦點
         android:focusable="true"//獲取焦點

然後就是第二種就是繼承TextView

public class MyTextView extends TextView {

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

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

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

   //重寫這個方法,強制返回true
    @Override
    public boolean isFocused() {
        return true;
    }
}

寫完Textview之後就是在佈局中直接用:

<com.bawie.MyTextView
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="大王讓我來巡山,尋了南山尋北山"
        android:background="@color/colorAccent"
        android:textSize="30sp"
        android:textColor="#ffffff"
        android:padding="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

這個的核心程式碼是:

    android:singleLine="true"
    android:ellipsize="marquee"
    android:text="大王讓我來巡山,尋了南山尋北山"

第三種方式,自定義View

這個其實屬於自定義View的範疇,不再贅述。