安卓日记 设置TextView走马灯效果

来源:互联网 发布:java无参构造方法举例 编辑:程序博客网 时间:2024/06/08 16:34

有两种方法实现走马灯效果

第一种是在XML中设置

<TextView            android:id="@+id/tv"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:ellipsize="marquee"//这里设置为走马灯,必须            android:marqueeRepeatLimit="marquee_forever"//循环无限次            android:singleLine="true"//设置单行,必须            android:scrollHorizontally="true"//横向滚动,必须            android:maxEms="10"            android:text="很长很长很长很长很长很长很长很长很长很长很长很长"/>

同时要在代码中设置

TextView textView = findViewById(R.id.tv);textView.setSelected(true);

第二种是直接在代码中设置

TextView t = new TextView(this);t.setText("很长很长很长很长很长很长很长很长很长很长很长很长");t.setTextColor(Color.parseColor("#000000"));//设定为WRAP_CONTENT 否则setMaxEms无效LayoutParams layoutParams =  new LayoutParams(LayoutParams.WRAP_CONTENT,                LayoutParams.WRAP_CONTENT);t.setLayoutParams(layoutParams);t.setMaxEms(10);t.setSingleLine(true); //单行,必须t.setEllipsize(TextUtils.TruncateAt.MARQUEE);//设置为走马灯,必须t.setMarqueeRepeatLimit(-1);//无限循环,如设置1则一次t.setHorizontallyScrolling(true);//横向滚动,必须t.setSelected(true);//必须layout.addView(t);//加载到布局

android:singleLine=”true”

实际上Android Studio 在设置单行的时候会报提示已经过时,暂时没有找到替代方法,不过设置的话依然能达到效果

这里只有文字超出设定的ems或者一行无法显示的情况下才会有效果,可以通过自定义View实现