先贴一下跑马灯效果的代码,这里我是继承的TextView:
public class MarqueeTextView extends AppCompatTextView {
public MarqueeTextView(Context context) {
this(context,null);
}
public MarqueeTextView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
this.setEllipsize(TextUtils.TruncateAt.MARQUEE);
this.setSingleLine(true);
this.setMarqueeRepeatLimit(-1);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if(focused)
super.onWindowFocusChanged(focused);
}
//最关键的部分
@Override
public boolean isFocused() {
return true;
}
}
有时候跑马灯view会随着进度条每秒刷新,导致文本没显示全又从头开始滚动了。处理这个问题,目前我的解决办法是:在跑马灯view外层再加一层LinearLayout。
<LinearLayout
android:id="@+id/player_song_name_ll"
android:layout_width="200dp"
android:layout_height="50dp"
android:orientation="horizontal"
android:layout_below="@id/xxxx"
android:layout_marginTop="34dp"
android:layout_centerHorizontal="true">
<xxxx.MarqueeTextView
android:id="@+id/player_song_name_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="你的背包"
android:textColor="@color/white"
android:textSize="32sp" />
</LinearLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)