Как я могу применить маску, которая затемняет текст `EditText` на Android?

Я хотел бы добиться этого результата на Android:

введите описание изображения здесь

Я уже пытался использовать LinearGradientShader, но он просто применяет эффект градиента в EditText фон вместо текста.

Вы можете помочь мне с этим?

Edit1: добавить код

public class CustomEditText extends AppCompatEditText {
    public CustomEditText(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        @ColorInt int startColor = ResourcesCompat.getColor(
                getResources(), android.R.color.transparent, getContext().getTheme());
        @ColorInt int endColor = ResourcesCompat.getColor(
                getResources(), android.R.color.black, getContext().getTheme());
        LinearGradient gradient = new LinearGradient(0, 0, getWidth(), 0, startColor, endColor, Shader.TileMode.MIRROR);
        Paint paint = new Paint(Paint.DITHER_FLAG);
        paint.setShader(gradient);
        super.onDraw(canvas);
    }
}

1 ответ

Решение

Я в конечном итоге решить эту проблему, установив EditText.setHorizontalFadingEdgeEnabled(true),

Он уже обрабатывает цвет градиента затухания на левой границе.

Другие вопросы по тегам