Android 中TextView中跑马灯效果的实现方法
程序员文章站
2023-12-17 12:13:58
条件:
1、android:ellipsize=”marquee”
2、textview必须单行显示,即内容必须超出textview大小
3、textvi...
条件:
1、android:ellipsize=”marquee”
2、textview必须单行显示,即内容必须超出textview大小
3、textview要获得焦点才能滚动
mtvtext.settext(“超过文本长度的数据");
mtvtext.setsingleline(true);设置单行显示
mtvtext.setellipsize(truncateat.marquee);设置跑马灯显示效果
textview.sethorizontallyscrolling(true); //让文字可以水平滑动
textview还可以设置跑马灯效果的滚动次数
android:marqueerepeatlimit="1"。1代表1次,-1代表无限循环。
java代码设置:
mtvtext.setmarqueerepeatlimit(-1);
.xml文件:
<textview android:id="@+id/tv_marquee" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tv_marquee_text" android:textsize="25sp" android:focusable="true" android:ellipsize="marquee" android:marqueerepeatlimit="marquee_forever" android:focusableintouchmode="true" android:textcolor="@color/colorprimary" />
.java文件
public class lamprunactivity extends appcompatactivity { private textview tv_marguee; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_lamp_run); intitextview(); } public void intitextview(){ tv_marguee= (textview) findviewbyid(r.id.tv_marquee); tv_marguee.setsingleline(true);//设置单行显示 tv_marguee.sethorizontallyscrolling(true);//设置水平滚动效果 // tv_marguee.setmarqueerepeatlimit(-1);//设置滚动次数,-1为无限滚动,1为滚动1次