2011-12-18 41 views
9

Tôi có tệp PNG mà tôi muốn sử dụng cho lớp phủ - tuy nhiên, tệp này phải được nhân đôi (và xoay 180 °), nhưng để tiết kiệm dung lượng, tôi không muốn đặt tệp được nhân đôi trong gói ứng dụng, nhưng thực hiện hành động này theo lập trình.Cách sao chép tệp hình ảnh? (2.2+)

Tôi có thể làm điều này với Froyo trở lên như thế nào?

Trả lời

17

Chia tỷ lệ bằng -1.0 làm cho hình ảnh bị lộn xộn. Giả sử bmp là bitmap bạn muốn mirror (ở đây trên trục x), bạn có thể làm:

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

Nếu bạn không muốn tạo ra một bitmap thứ hai, bạn có thể làm tương tự với canvas.scale:

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

nếu bạn sử dụng ImageView bạn có thể sử dụng setScaleX:

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

Nó thực sự là lựa chọn tốt nhất –

Các vấn đề liên quan