TextView--跑马灯

301 阅读1分钟
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" />