我想绘制一条带有光滑切口的线条。切口将包括渐变淡出和渐变淡入。在运行时,我想在线上转换此切口以响应用户输入。
我可以使用LinearGradient实例绘制渐变。但是,梯度描述符是在实例创建时定义的。我不想在每次位置变化时重新创建着色器。
int[] colors = { Color.WHITE, Color.TRANSPARENT, Color.TRANSPARENT, Color.WHITE};
cutoutPaint.setShader(new LinearGradient(0, 0, 0, 100, colors, new float[]{0, 0.4f, 0.6f, 1}, Shader.TileMode.CLAMP));
void onDraw(Canvas canvas) {
canvas.drawLine(..... cutoutPaint);
}
我的问题是,如何在不重新创建着色器的情况下沿着线转换此剪切块?