跑馬燈效果

2021-07-23 00:00:37 字數 1645 閱讀 1239

android:ellipsize="marquee"

android:marqueerepeatlimit="marquee_forever"

android:singleline="true"

但是這樣子有乙個缺點,就是這種狀態的跑馬燈只能在textview處於焦點狀態的時候,它才會滾動,對於實際的開發應用中很不實用,為了是跑馬燈無論在什麼情況下都能跑起來,這裡需要自定義乙個textview,它繼承textview,並且重寫isfocuse()方法,讓它永遠返回true,這樣跑馬燈效果就能一直的跑起來了。

public class marqueetextview extends textview

public marqueetextview(context context, attributeset attrs)

public marqueetextview(context context, attributeset attrs,

int defstyle)

@override

public boolean isfocused()

}在xml中引用

這樣就可以顯示了

效果圖見上。

-------------------------------分割線-------------------------------

再來一例:

1.textview一行顯示資料,多的資料用省略號來表示

2.textview實現跑馬燈效果

其中有幾個問題是我自己碰到的,列舉如下:

1.寬度android:layout_width不可以設定為wrap_content(自適應內容)

2.android:text最好是比較長的字串,最少要長過自己設定的width大小(我這裡是60dp)

3.顏色最好別設定為@android:color/white,否則你什麼都看不到,因為背景顏色也是white

4.在xml中,textview 的屬性

android:ellipsize = "end"   省略號在結尾

android:ellipsize = "start"   省略號在開頭

android:ellipsize = "middle" 省略號在中間

android:ellipsize = "marquee" 跑馬燈

5.android:scrollhorizontally="true"相信大家英文水平還不錯的話都明白這句的意思是水平滾動

6.android:marqueerepeatlimit="marquee_forever" 看英文同樣可以明白,是無限次迴圈,學習android,英文基礎還是必須的。

7.最後還有兩句**沒有解釋:

android:focusable="true" //讓textview獲得焦點

android:focusableintouchmode="true" //針對觸控螢幕獲得當前焦點

事實上這兩句**我也了解不是特別多,在網上查了下這兩個屬性,目前理解為:

android:focusable="true"相當於當前activity開啟的時候,讓當前控制項textview獲得焦點,才可以實現滾動功能

android:focusableintouchmode="true"和上述屬性應該是類似的,但限制應該是指的觸控螢幕上的意思

跑馬燈效果

cgrect frame labelshow.frame frame.origin.x 180 labelshow.frame frame uiview beginanimations testanimation context null uiview setanimationduration 8....

跑馬燈效果

一句話概括,平移再畫一次。textview 預設就支援跑馬燈效果,但需要設定一些東西,滿足一些條件。但我想知道它的原理。看這效果,就是平滑移動 textview 的內容,這不就是 mscrollx 幹的嗎,結合 valueanimator 很容易就實現了。難點在於,把文字的頭部重新從右邊開始畫出來。...

TextView 跑馬燈效果

本文實現了android系統自帶的跑馬燈效果 marquee 與自定義的跑馬燈效果的對比。1.在系統自帶的跑馬燈中,xml布局檔案必須配置的屬性有以下幾個 1 android clickable true 2 android ellipsize marquee 3 android focusable...