Dibujar un mapa de bits en un lienzo con un degradado alfa
Me gustaría dibujar unBitmap
en unCanvas
, con un gradiente alfa (lineal) aplicado. El punto importante es que no quiero superponer la imagen con ningún otro color; el fondo (viniendo delView
s detrás delView
que estaría dibujando estoCanvas
a) debería simplemente "brillar". Para ilustrar, mi objetivo sería algo como esto (el patrón de tablero de ajedrez representa elView
detrás)
Uno podría pensar que podría hacer algo como esto:
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);
peroLinearGradient
'sFROM
yTO
los argumentos aquí tendrían que ser colores, no valores alfa; así que no veo forma de especificar que, por ejemploFROM
debe ser completamente transparente yTO
debe ser completamente opaco (sin aplicar ninguna superposición de color).