Android-TextView跑馬燈效果

1.讓不少文字一行顯示,默認是false,設置爲true;android

android:singleLine="true"

2.對文字進行裁剪,默認是end裁剪;ide

android:ellipsize="end"

 

 3.設置文字裁剪爲start,設置一行顯示:學習

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="專注 只專一Android,鍥而不捨 天天堅持努力學習Android,全身心投入把Android學精,把學習Android演變成興趣愛好"

        android:singleLine="true"
        android:ellipsize="start"
        />

 

4.如何讓文字滾動起來,按理來講設置 ellipsize="marquee" 就能夠滾動起來了,可是系統默認認爲沒法獲取TextVIew焦點,因此還須要設置能獲得焦點ui

android:singleLine="true"
android:ellipsize="marquee"
TextView tvText = findViewById(R.id.tv_text);
tvText.setSelected(true);

 

5.已經能夠滾動起來了,因爲系統內部是採用定時器去啓動的,有可能會中止,爲了解決不穩定性,還能夠設置一個屬性就穩定了 spa

android:marqueeRepeatLimit="marquee_forever"

 

另一種方式告訴系統TextView是有焦點的:code

<liudeli.ui.all.MyTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="專注 只專一Android,鍥而不捨 天天堅持努力學習Android,全身心投入把Android學精,把學習Android演變成興趣愛好"

        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        />
public class MyTextView extends TextView {

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

    /**
     * 從新此方法,是爲了告訴系統,TextView能夠獲取到焦點啦
     * @return
     */
    @Override
    public boolean isFocused() {
        return true;
    }
}
相關文章
相關標籤/搜索