Я искал и нашел простой код для поворота изображения. Я вытаскиваю изображение из объекта ImageView в растровое изображение, поворачивая его, а затем возвращаю. Я понимаю, что это не самый эффективный метод, но я не думаю, что он должен потерпеть крах без сообщения об ошибке в блоке CATCH.Android: Поворот большого изображения падает без ошибки
Вот мой код. Единственное значение, которое передается, это «r» или «l» в зависимости от того, в каком направлении я хочу повернуть. Изображения Smaler (1500x1500 или меньше) работают нормально. Вещи плохие вокруг размера 2500x2500.
public void rotate(String dir)
{
try
{
float angle = (dir.equals("r") ? 90 : -90);
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
Matrix matrix = new Matrix();
matrix.reset();
matrix.postRotate(angle);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false);
imageView.setImageBitmap(bitmap);
}
catch(Exception e)
{
Utilities.logError(e.toString());
}
}
Любая подсказка о том, почему она рушится и почему она не исключает исключения? Я просто получаю сообщение «Неудачный процесс ... остановился», и меня отбрасывают на экран приветствия моего приложения.
О, для ударов я установил угол в ZERO (жесткий код), и он не сработал. Я подозреваю, что чересчур слишком долго, чтобы повернуть, и Android подходит. Но я не уверен, как подтвердить это как проблему или как сказать Android подождать немного дольше.
Даже если я уменьшу изображение предварительного просмотра для вращения, когда я иду на сохранение, мне придется повернуть изображение полного размера хотя бы один раз и попадет в эту же проблему. Не так ли?
его гормональный сбой после трассировки стеки – Raghunandan