Androidd Studio 之多行文字跑马灯特效

 

•效果展示图

  

•参考资料

  两种方法实现TextView跑马灯效果(字体横向滚动)

•出现的问题

  新建 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" />

 

 

posted @ 2020-02-27 10:59  MElephant  阅读(1069)  评论(0编辑  收藏  举报