私はインテント経由でカメラを使用して画像をスナップし、それをイメージビューに保存しています。インテント カメラは横向きモードで、戻るアクティビティは縦向きモードです。そのため、アクティビティの向きが変わり、新しいアクティビティがリロードされます。この画像をその画像ビューに保存しようとしています。ただし、アクティビティページに戻ると、アクティビティが縦向きモードになると消えます。onSaveInstanceState メソッドを追加すると、次のエラーでクラッシュします。
Canvas: trying to use a recycled bitmap android
以下のコードを追加しました。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page);
imageView = (ImageView) findViewById(R.id.result);
if(savedInstanceState != null){
Bitmap photo = savedInstanceState.getParcelable("savedImage");
imageView.setImageBitmap(photo);
}
}
以下のように画像を保存しました
protected void onSaveInstanceState(Bundle icicle){
super.onSaveInstanceState(icicle);
imageView.buildDrawingCache();
Parcelable bm = imageView.getDrawingCache();
icicle.putParcelable("savedImage",bm);
}