- Там нет проблем с низким качеством изображением, то есть менее 300 KB
- Там нет никаких проблем с одиночными +90, 180 или 270 градусами вращение.
Только если высокое качество изображения, повернутые с точки зрения изображения более чем в два раза приложение падаетAndroid сбоя приложения при вращают дважды в виде изображений для получения высококачественных изображений из галереи
private void setupListeners() { rotateLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { *imageBitmap = Util.ImageProcess.rotateImage(imageBitmap, 270);* showImage.setImageBitmap(imageBitmap); } }); rotateRight.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageBitmap = Util.ImageProcess.rotateImage(imageBitmap, 90); showImage.setImageBitmap(imageBitmap); } }); flip.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageBitmap = Util.ImageProcess.rotateImage(imageBitmap, 180); showImage.setImageBitmap(imageBitmap); } }); continueButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { saveRotatedImage(); Util.MediaScanner.galleryAddPic(getApplicationContext(),imageFile.getAbsolutePath()); startNextActivity(); } });
}
Кроме того, для вращения:
public static class ImageProcess{
public static Bitmap rotateImage(Bitmap source, float angle) {
Bitmap bitmap = null;
Matrix matrix = new Matrix();
matrix.postRotate(angle);
try {
bitmap = Bitmap.createBitmap(source, 0, 0, source.getWidth(),
source.getHeight(), matrix, true);
} catch (OutOfMemoryError err) {
err.printStackTrace();
}
return bitmap;
Какое исключение вы видите - OutOfMemoryError? –