如何在Android上应用淡化“EditText”文本的掩码?

时间:2018-05-31 18:01:01

标签: android android-layout android-edittext gradient android-text-color

我想在Android上实现这一结果:

enter image description here

我已尝试使用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 个答案:

答案 0 :(得分:1)

我最终通过设置EditText.setHorizontalFadingEdgeEnabled(true)来解决问题。

它已经处理了左边框上的渐变渐变颜色。