Я пытаюсь сделать игру, в которой мне нужно несколько раз поворачивать растровое изображение. Но иногда это показывает ошибку из памяти. Как решить эту проблему? Может ли кто-нибудь предложить мне способ переработать растровое изображение или любой другой выход. Это код, который я написал:Ошибка памяти при вращении изображения
public void rotate() {
CustomImageView customImageView=this;
Bitmap bitmap = ((BitmapDrawable)customImageView.getDrawable()).getBitmap();
Matrix matrix = new Matrix();
matrix.setRotate(90, (float) bitmap.getWidth()/2, (float) bitmap.getHeight()/2);
try {
Bitmap b2 = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
if (bitmap != b2) {
bitmap.recycle();
bitmap = b2;
}
} catch (OutOfMemoryError ex) {
System.out.println("Exception::out of memory in customimage");
throw ex;
}
customImageView.setImageBitmap(bitmap);
}
Возможно, изображение, которое вы вращаете, слишком велико. Сначала уменьшите изображение, а затем поверните его. –
@ Хамид Шату: большое спасибо :) масштабирование сделало работу –