1. 程式人生 > >Android TV控制元件之TextView跑馬燈

Android TV控制元件之TextView跑馬燈

  在TV開發中,很多時候TextView都需要實現跑馬燈效果。但是跑馬燈效果僅在TextView獲取焦點的時候才會有效,那麼我們如何在沒有焦點的時候讓TextView產生跑馬燈效果呢。
  現在網上一般有兩種實現方式,一種是直接通過Scoller移動內容,但是這種方式有一個問題。因為原本的跑馬燈效果在內容前部分隱藏以後 ,接著會出現在控制元件尾部,形成一種首位相連的效果。而Scoller的這種方式,必須要等到內容完全隱藏完畢後,才會繼續重新出現。並且如果你的內容長度大於控制元件長度,就會很尷尬了,因為你只能看到省略號!
  另外一種實現方式則是繼承TextView,然後重寫isFocused()

讓返回值一直為true。不過這樣的話,會有一個問題,就是停止跑馬燈的問題。其實停止還是很簡單的,只需要呼叫一下setEllipsize(null)方法就行了,注意這裡的引數只有NULL的時候才能停止,如果要重新啟動跑馬燈則重新呼叫setEllipsize(TruncateAt.MARQUEE);就行了。