2011-12-18 12 views
9

Ho un file PNG che voglio usare per un overlay - tuttavia, questo file deve essere specchiato (e ruotato di 180 °), ma per risparmiare spazio, non voglio posizionarlo il file specchiato nell'apk, ma esegui questa azione a livello di programmazione.Come rispecchiare un file immagine? (2.2+)

Come posso fare questo con Froyo e sopra?

risposta

17

Il ridimensionamento di -1,0 provoca la capovolgimento dell'immagine. Supponendo bmp è il bitmap che si desidera eseguire il mirroring (qui sull'asse x) si può fare:

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

Se non si desidera creare un secondo bitmap, è possibile fare lo stesso con canvas.scale:

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

se si utilizza ImageView è possibile utilizzare setScaleX:

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

E 'davvero l'opzione migliore –

Problemi correlati