在 Android 中,可以通过自定义 TextView 来实现从右往左逐渐消失的效果。以下是一个示例代码:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.widget.TextView;

public class GradientTextView extends TextView {
    private LinearGradient gradient;
    private Matrix gradientMatrix;
    private Paint paint;
    private int viewWidth = 0;
    private int translate = 0;

    public GradientTextView(Context context) {
        super(context);
        init();
    }

    public GradientTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public GradientTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        paint = getPaint();
        gradientMatrix = new Matrix();
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        if (viewWidth == 0) {
            viewWidth = getMeasuredWidth();
            if (viewWidth > 0) {
                // 创建渐变
                gradient = new LinearGradient(0, 0, viewWidth, 0,
                        new int[]{getCurrentTextColor(), 0x00ffffff},
                        null, Shader.TileMode.CLAMP);
                paint.setShader(gradient);
            }
        }
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if (gradientMatrix != null) {
            translate += viewWidth / 10;
            if (translate > 2 * viewWidth) {
                translate = -viewWidth;
            }
            gradientMatrix.setTranslate(translate, 0);
            gradient.setLocalMatrix(gradientMatrix);
            // 刷新
            postInvalidateDelayed(100);
        }
    }
}

使用自定义的 GradientTextView 时,只需在布局文件中将 TextView 替换为 GradientTextView 即可。

<com.example.GradientTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

这样,就可以在调用接口时,自定义的 TextView 会从右往左逐渐消失。

你可以将以上代码保存为一个名为 GradientTextView.java 的文件,然后在你的 Android 项目中使用。

希望这个示例能对你有所帮助!

Android 自定义 TextView 实现从右往左逐渐消失效果

原文地址: https://www.cveoy.top/t/topic/qENv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录