1. 程式人生 > >Android中對文字實現跑馬燈效果

Android中對文字實現跑馬燈效果

關於在Android中文字實現跑馬燈效果

方法一:(只能實現單個TextView的跑馬燈效果)
android:singleLine=”true”只能單行,超出的文字顯示為”…”
android:ellipsize=”marquee”省略號沒有,但沒有跑馬燈效果
android:focusable=”true”
android:focusableInTouchMode=”true”

方法二:
自定義一個類繼承TextView,實現預設的三種建構函式,重寫isFocused()方法,返回true
在佈局檔案中將TextView改為(包名+類名)com.imooc.marqueetextviewdemo.MarqueeText
對於方法二的實現是為了在設定多行文字時都能實現跑馬燈效果否則若只是實現方法一隻能對一行文字進行跑馬燈展示。

解析:
方法二中兩個TextView都能夠實現跑馬燈效果是因為重寫了isFocused()方法返回true,強制讓TextView都focused;而方法一中,第一個TextView獲得了焦點,而第二個TextView沒有獲得焦點,無法實現跑馬燈效果

問題:
滾動一段時間後會自己停: android:marqueeRepeatLimit=”marquee_forever”

Tips:
px,dp(dip),sp
1.在開發中不建議使用px,px不能根據解析度來進行等比縮放;
2.dp和sp都可以根據解析度來進行等比縮放;
3.在控制元件中做長度大小限制時推薦使用dp,sp更多用於顯示文字size;
4.在android最新的SDK中推薦使用dp

ImageView 中的src屬性和background屬性區別:
src:尺寸不隨控制元件大小而改變,不填充;
background:尺寸始終和控制元件大小相同,還可以實現#f0f0f0,但是要設定高度滴!