1. 程式人生 > >TextView--跑馬燈

TextView--跑馬燈

1.直接在佈局中設定(當佈局中出現一些獲取焦點的View時就不可用)

<TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@id/flybaner"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:singleLine="true"
        android:textSize="30sp"
        android:text="啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦"
        />

ps:文字需要足夠長才有效果

2.自定義view

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;
    }
}

XML佈局

<com.example.pretendqq.view.MyTextView
        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦啦啦啦啦阿拉啦"
        android:textSize="30sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />