Androidd Studio 之多行文字跑马灯特效
•效果展示图
•参考资料
•出现的问题
新建 Java 文件继承 TextView 时出现问题:
•解决方法
不应该继承 $TextView$ 而应该继承 $AppCompatTextView$;
此时,可能还会报错:
不要慌,问题不大,在类里加入如下代码即可解决问题:
public MyTextView(Context context) { super(context); }
•多行文字跑马灯
- 新建一个java文件,并命名为 $MyTextView$,继承 $AppCompatTextView$,重写 $TextView$ 的三个方法
- 在布局中把要使用跑马灯效果的 $Textview$ 换成 $MyTextView$ 即可
MyTextView.java 代码:
public class MyTextView extends AppCompatTextView { public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); } public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean isFocused() { return true; } }activity.xml 中的 <TextView> 组件代码:
<com.example.table.MyTextView android:ellipsize="marquee" android:id="@+id/tv_1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="我是多行文字跑马灯001" android:textColor="#F82414" android:textSize="50sp" /> <com.example.table.MyTextView android:ellipsize="marquee" android:id="@+id/tv_2" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="我是多行文字跑马灯002" android:textColor="#0288D1" android:textSize="50sp" />