TextView的跑马灯效果

    xiaoxiao2021-03-25  92

    TextView实现跑马灯效果

    这里是实现TextView的跑马灯效果分为两个

    单个TextView实现多个TextView实现

    单个TextView实现

    <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView" android:text="@string/text_view" android:textSize="20sp" android:singleLine="true" android:focusable="true" android:focusableInTouchMode="true" android:ellipsize="marquee" />

    这样单个的跑马灯效果就出现了

    另外如果在EditText的父级控件中找一个,设置成 android:focusable="true" android:focusableInTouchMode="true"就可以让EditText不自动获取焦点

    多个TextView实现

    首先我们要自定义一TextView的子类,我取名叫Text,然后实现三个构造函数,最后要重载一个isFocused()的方法,这样做的目的是可以让多个TextView同时获得焦点(默认情况,有两个TextView时,一个获得焦点后另一个就无法获得焦点了),代码如下:

    import android.content.Context; import android.util.AttributeSet; import android.widget.TextView; /** * Created by ztt on 2017/2/21. */ public class Text extends TextView { public Text(Context context) { super(context); } public Text(Context context, AttributeSet attrs) { super(context, attrs); } public Text(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean isFocused() { return true; } }

    做好以上的准备,还需要在xml文件做一件事,那就将TextView用我们自定义的控件,方法是包名+类名,代码如下:

    <com.example.ztt.newbloglx.Text android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" android:text="@string/text_view" android:textSize="20sp" android:singleLine="true" android:focusable="true" android:focusableInTouchMode="true" android:ellipsize="marquee" /> <com.example.ztt.newbloglx.Text android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" android:text="@string/text_view" android:textSize="20sp" android:singleLine="true" android:focusable="true" android:focusableInTouchMode="true" android:ellipsize="marquee" />

    这样TextView的简单跑马灯就解决了

    转载请注明原文地址: https://ju.6miu.com/read-25318.html

    最新回复(0)