2011-12-18 9 views
9

Mam plik PNG, który chcę użyć do nakładki - jednak ten plik musi być odbijany lustrzanie (i obracany o 180 °), ale aby zaoszczędzić miejsce, nie chcę umieszczać dublowany plik w apk, ale wykonaj to programowo.Jak wykonać kopię lustrzaną pliku obrazu? (2.2+)

Jak mogę to zrobić z Froyo i nowymi?

Odpowiedz

17

Skalowanie przez -1,0 powoduje przewrócenie obrazu. Zakładając bmp jest bitmapa chcesz lustro (tu na osi x) można zrobić:

Matrix matrix = new Matrix(); 
matrix.preScale(-1.0f, 1.0f); 
Bitmap mirroredBitmap = Bitmap.createBitmap(bmp, 0, 0, bmp.width(), bmp.height(), matrix, false); 

Jeśli nie chcesz, aby utworzyć drugą bitmapę, można zrobić to samo z canvas.scale:

canvas.save(); 
canvas.scale(-1.0f, 1.0f); 
canvas.drawBitmap(bitmap, ...); // The bitmap is flipped 
canvas.restore(); 
6

jeśli używasz ImageView można użyć setScaleX:

public void mirroredBubble() 
{ 
    bubble_rl.setScaleX(-1.0f); 
} 
+0

To naprawdę najlepsza opcja –

Powiązane problemy