2011-12-18 20 views
9

Tengo un archivo PNG que quiero usar para una superposición; sin embargo, este archivo debe reflejarse (y girarse 180 °), pero para ahorrar espacio, no quiero colocarlo. el archivo duplicado en la apk, pero realice esta acción mediante programación.Cómo duplicar un archivo de imagen? (2.2+)

¿Cómo puedo hacer esto con Froyo y superior?

Respuesta

17

Escalar por -1.0 hace que la imagen se voltee. Suponiendo bmp es el mapa de bits que desea reflejar (en este caso en el eje x) que puede hacer:

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

Si no desea crear un segundo mapa de bits, puede hacer lo mismo con canvas.scale:

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

si utiliza ImageView puede utilizar setScaleX:

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

es realmente la mejor opción –

Cuestiones relacionadas