天天看點

android:ellipsize = "marquee" 跑馬燈,TextView設定android:ellipsize=marquee不滾動

今天發現android開發中有一個android:ellipsize=marquee,這個感覺像html中的marquee功能,可以實作滾動效果,于是測試了一下,結果不行呀,後來百度了一下解決辦法,下面大家一起來看看。

若要讓TextView裡的文本滾動,必須滿足以下幾個因素:

1,TextView裡文本寬度超過TextView的寬度

2,android:ellipsize="marquee"

3,隻有在TextView擷取到焦點時,才會滾動.是以加上android:focusableInTouchMode="true" android:focusable="true"

最容易忽略的是第三條.

滾動重複次數設定:

android:marqueeRepeatLimit="marquee_forever"

看一個TextView屬性android:ellipsize實作跑馬燈效果

Android系統中TextView實作跑馬燈效果,必須具備以下幾個條件:

1、android:ellipsize=”marquee”

2、TextView必須單行顯示,即内容必須超出TextView大小

3、TextView要獲得焦點才能滾動

XML代碼:

android:ellipsize="marquee", android:singleLine="true"

Java代碼:

mTVText.setText("哼唱接撒砥砺風節雷鋒精神,很長很長很長很長很長很長的資料");

mTVText.setSingleLine(true);

mTVText.setEllipsize(TruncateAt.MARQUEE);

PS: TextView.setHorizontallyScrolling(true); //讓文字可以水準滑動

TextView還可以設定跑馬燈效果的滾動次數,如下:

XML代碼設定:

android:marqueerepeatlimit="1"。1代表1次,-1代表無限循環。

Java代碼設定:

mTVText.setMarqueeRepeatLimit(-1);