Как отразить файл изображения?(2.2+) - PullRequest
10 голосов
/ 18 декабря 2011

У меня есть файл PNG, который я хочу использовать для наложения - однако этот файл должен быть зеркальным (и повернутым на 180 °), но для экономии места я не хочу размещать зеркальный файлв apk, но сделать это действие программно.

Как я могу сделать это с Froyo и выше?

Ответы [ 2 ]

18 голосов
/ 18 декабря 2011

При масштабировании на -1,0 изображение переворачивается.Предполагая, что bmp - это растровое изображение, которое вы хотите отразить (здесь на оси x), вы можете сделать:

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

Если вы не хотите создавать второе растровое изображение, вы можете сделать то же самое с canvas.scale:

canvas.save();
canvas.scale(-1.0f, 1.0f);
canvas.drawBitmap(bitmap, ...); // The bitmap is flipped
canvas.restore();
7 голосов
/ 15 февраля 2015

Вы можете просто использовать View.setScaleX ()

Например

 public void mirrorView(View v){
    v.setScaleX(-1.0f);
}
...