最近在做關於安卓開發的複習學習,畢竟熟能生巧,話不多說,直接第一種方法上:(這種適用於一個TextView滾動)
在TextView的標籤中加上如下代碼:(紅色部分爲必須設置選項)
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
其中singline表示單行顯示,否則自動換行了怎麼滾動,只有顯示不下纔可以橫向滾動啊
ellipsize屬性,作用是當文字過長時,該控件該如何顯示:
android:ellipsize=”start” 表示:省略號顯示在開頭
android:ellipsize=”end”表示:省略號顯示在結尾
android:ellipsize=”middle”表示:省略號顯示在中間
android:ellipsize=”marquee”表示:以跑馬燈的方式顯示(也就是橫向滾動)
android:marqueeRepeatLimit="marquee_forever"//表示滾動回數,這裏設置的是永久,表示一直滾動 也可以設置數字爲1,2,3表示幾次。
android:focusable="true" 要顯示該跑馬燈,view必須要獲得焦點,只有在取得焦點的情況下跑馬燈纔會顯示。
當然在Activity中你還需要設置的一個就是textview.setSelected(true);
到這裏我們實現了第一種一排textview 的滾動,那麼要是一個界面有兩個或者多個TextView怎麼辦呢?你會發現焦點沒法設置,這個時候只能用代碼的方法來設置了。
1,新建一個java文件,我這個叫做MyTextView,繼承TextView,重寫TextView的三個方法,並且一定要寫isFocused這個方法,並返回true:
public class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//返回textview是否處在選中的狀態
//而只有選中的textview才能夠實現跑馬燈效果
@Override
public boolean isFocused() {
return true;
}
}
2.在佈局中把要使用跑馬燈效果的Textview換成MyTextView即可。
快點擊運行試試效果吧!