android —— 阴影效果和跑马灯效果Textview

1、带阴影的TextView

①、 android:shadowColor=“@color/black”
设置阴影颜色,需要与shadowRadius一起使用
②、android:shadowRadius=“3.0”
设置阴影模糊程度,设为0.1会变成字体颜色,建议设置3.0
③、android:shadowDx=“10”
设置阴影在水平方向的偏移,水平方向阴影开始的横坐标位置
④、android:shadowDy=“10”
设置阴影在竖直方向的偏移,竖直方向阴影开始的纵坐标位置

实例:

    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:shadowRadius="3.0"
        android:shadowColor="@color/black"
        android:shadowDx="10"
        android:shadowDy="10"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

2、跑马灯效果的TextView

①、android:singleLine=“true”
内容当行显示
②、 android:focusable=“true”
是否可以获取焦点
③、android:focusableInTouchMode=“true”
控制视图在触摸模式下是否可以获取焦点
④、 android:ellipsize=“marquee”
在什么位置添加省略文本
⑤、android:marqueeRepeatLimit=“marquee_forever”
字幕动画重复次数

实现方式1:新建一个textview继承AppCompatTextView,重写isFocused() 方法

public class CustomTextView extends AppCompatTextView {

    public CustomTextView(@NonNull Context context) {
        super(context);
    }
    public CustomTextView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }
    public CustomTextView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    public boolean isFocused() {
        return true;
    }
}

xml中使用自定义的view:

  <com.lxd.xdplayer.CustomTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World!"
        android:singleLine="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>

实现方式2:在xml布局文件的 AppCompatTextView中添加

    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World!"
        android:singleLine="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">
        <requestFocus/>
    </androidx.appcompat.widget.AppCompatTextView>

你可能感兴趣的:(android)