Как я могу применить маску, которая затемняет текст `EditText` на Android? - PullRequest
0 голосов
/ 31 мая 2018

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

enter image description here

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

Можете ли вы помочь мне с этим?

Редактировать1: Добавить код

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 Ответ

0 голосов
/ 31 мая 2018

В итоге я решил ее, установив EditText.setHorizontalFadingEdgeEnabled(true).

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

...