跑馬燈的簡單實現
阿新 • • 發佈:2019-01-01
Android的跑馬燈有三種實現方式
首先第一個是
<TextView android:singleLine="true" android:ellipsize="marquee" android:text="大王讓我來巡山,尋了南山尋北山" android:background="@color/colorAccent" android:textSize="30sp" android:textColor="#ffffff" android:padding="10dp" android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" />
直接在佈局檔案中使用這個textview即可,其中的關鍵程式碼是:
android:singleLine="true" //設定文字只顯示一行 android:ellipsize="marquee"// 設定無法顯示的文字的顯示方式為跑馬燈 android:marqueeRepeatLimit="marquee_forever"//設定跑馬燈的重複方式 android:text="大王讓我來巡山,尋了南山尋北山"//注意文字一定要長,否則無效果 android:focusableInTouchMode="true" //通過觸控方式獲取焦點 android:focusable="true"//獲取焦點
然後就是第二種就是繼承TextView
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); } //重寫這個方法,強制返回true @Override public boolean isFocused() { return true; } }
寫完Textview之後就是在佈局中直接用:
<com.bawie.MyTextView
android:singleLine="true"
android:ellipsize="marquee"
android:text="大王讓我來巡山,尋了南山尋北山"
android:background="@color/colorAccent"
android:textSize="30sp"
android:textColor="#ffffff"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
這個的核心程式碼是:
android:singleLine="true"
android:ellipsize="marquee"
android:text="大王讓我來巡山,尋了南山尋北山"
第三種方式,自定義View
這個其實屬於自定義View的範疇,不再贅述。