Erstellen Sie einen Alpha-Farbverlauf auf dem Bild, um einen Überblendungseffekt zu erzielen

Wie kann ich einen Alpha-Farbverlauf auf ein Bild anwenden, damit es linear ausgeblendet wird? Im Moment erstelle ich Rechtecke mit einer Einheitsbreite und zeichne damit die Bitmap mit einem Malobjekt, dessen Alpha-Wert in einer Schleife geändert wird. Ich tat es nur, weil mir nichts anderes einfiel. Ein ordentlicherer Weg wäre also besser.

Bitmap bitmap = BitmapFactory.decodeStream(is);
Bitmap bmp = Bitmap.createScaledBitmap(bitmap, 100, 151, true));
bitmap.recycle();

Rect Rect1 = new Rect(0, 0, 100, 100);
Rect Rect2 = new Rect(100, 0, 101, 100);

Paint paint = new Paint();

canvas.drawBitmap(bmp, Rect1, Rect1, null);
while (paint.getAlpha() != 0) {
    paint.setAlpha(paint.getAlpha() - 5);
    canvas.drawBitmap(bmp, Rect2, Rect2, paint);
    Rect2.set(Rect2.left + 1, Rect2.top, Rect2.right + 1, Rect2.bottom);
}

Etwas wie das

P.S. Ich versuche das für ein Live Wallpaper zu machen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage