如何应用遮罩淡出 Android 上的 `EditText` 文本?
How can I apply a mask that fades out a text of a `EditText` on Android?
我想在 Android 上实现该结果:
我已经尝试使用 LinearGradient
Shader
, but it just applies the gradient effect in the 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);
}
}
我最终通过设置 EditText.setHorizontalFadingEdgeEnabled(true)
.
解决了这个问题
它已经处理了左边框上的褪色渐变颜色。
我想在 Android 上实现该结果:
我已经尝试使用 LinearGradient
Shader
, but it just applies the gradient effect in the 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);
}
}
我最终通过设置 EditText.setHorizontalFadingEdgeEnabled(true)
.
它已经处理了左边框上的褪色渐变颜色。