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 delViews 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).

Respuestas a la pregunta(2)

Su respuesta a la pregunta