android實現跑馬燈效果

第一步:新建一個新項目,MarqueeTextView
首先爲了觀察到跑馬燈效果,將要顯示的文字極可能 寫長。在strings.xml文件夾裏面將

<string name="hello_world">hello_world</string>

修改爲

<string name="hello_world">我的代碼很長,真的很長,不行你看看,實際上是騙你的,逗比,hiahia~~~~</string>

默認情況下,顯示文字會自動換行!爲了實現跑馬燈效果,首先要阻止其自動換行。通過使用singleLine屬性來實現!
android:singleLine=”true”
如果其目的只是實現單行文字的跑馬燈效果,可以僅僅再通過三個語句來實現!
android有個ellipsize屬性,
android:ellipsize=”marquee”
android:focusable=”true”
android:focusableInTouchMode=”true”

通過上述代碼可以實現單行文字的跑馬燈效果。但是如果要實現多行文字的跑馬燈效果,將上述代碼重複書寫,不能實現預想功能!因爲在上述的focusable屬性裏面已經將焦點定義到第一行上!後續的得不到focus!可以通過新建一個class類來實現!

在src文件夾裏面新建一個類命名爲MarqueeText

package com.example.marqueetextviewdemo1;

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

public class MarqueeText extends TextView{

    public MarqueeText(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public MarqueeText(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    public boolean isFocused() {
        return true;
    }
}

然後再將main.xml文件裏面的TextView全部修改爲 包名+.+類名。
此次修改是爲了將所有以這種方式定義的,都能獲得focus,然後實現跑馬燈的效果!

顯示的效果如下:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章