Как я могу применить маску, которая затемняет текст `EditText` на Android?
Я хотел бы добиться этого результата на Android:
Я уже пытался использовать LinearGradient
Shader
, но он просто применяет эффект градиента в 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)
,
Он уже обрабатывает цвет градиента затухания на левой границе.