我想在画布
Canvas
上绘制一个Bitmap
,并应用(线性)alpha渐变。重要的是,我不想在图像上叠加任何其他颜色; 背景(来自我将此Canvas
绘制到其后面的View
)只需“透过”即可。 为了说明,我的目标是这样的(棋盘格图案表示View
后面的内容):
人们可能会认为我可以像这样做:Bitmap bitmap = ...;
Paint paint = new Paint();
paint.setShader(new LinearGradient(0, 0, 100, 0, FROM, TO, Shader.TileMode.CLAMP));
canvas.drawBitmap(bitmap, 0, 0, paint);
但是在这里,LinearGradient
的FROM
和TO
参数需要是颜色,而不是透明度值;因此,我没有看到任何指定例如FROM
完全透明和TO
完全不透明(无需应用任何颜色叠加)的方法。
LinearGradient
需要color0
(起始颜色)和color1
(结束颜色)是整数。它是否允许使用 rbga 值的小数表示,还是只允许 rgb,或者它期望完全不同的内容?文档对这个整数值的解释相当不清楚。https://developer.android.com/reference/android/graphics/LinearGradient.html - d.j.brown