如何在不重新创建着色器的情况下在运行时转换渐变?

时间:2015-05-14 15:30:43

标签: android

我想绘制一条带有光滑切口的线条。切口将包括渐变淡出和渐变淡入。在运行时,我想在线上转换此切口以响应用户输入。

我可以使用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);
}

我的问题是,如何在不重新创建着色器的情况下沿着线转换此剪切块?

0 个答案:

没有答案