我已搜索並找到旋轉圖像的簡單代碼。我將ImageView對象的圖像拖動到位圖中,旋轉並放回位圖。我意識到這不是最有效的方法,但我認爲它不會在沒有在CATCH塊中給出錯誤消息的情況下崩潰。Android:旋轉大圖像崩潰而不會引發錯誤
這是我的代碼。根據我想要旋轉的方向,傳入的唯一值是「r」或「l」。聰明的圖像(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());
}
}
任何線索,爲什麼它的崩潰和爲什麼它不thow異常?我只是收到一條消息:「不幸的過程....已停止」,我被踢回了我的應用程序的歡迎屏幕。
哦,對於踢我的角度設置爲零(硬編碼),它沒有崩潰。我懷疑旋轉時間太長,而Android則適合。但我不確定如何確認問題或如何告訴Android等待一段時間。
即使我減少旋轉的預覽圖像,當我去保存時,我將不得不旋轉全尺寸圖像至少一次,並會遇到同樣的問題。我不是嗎?
其崩潰後的堆棧跟蹤 – Raghunandan