この問題を解決するための3つの解決策があります。
1)最初に画像をバイト配列に変換してからインテントに渡し、次のアクティビティでバンドルからバイト配列を取得して画像(ビットマップ)に変換し、ImageViewに設定します。
ビットマップをバイト配列に変換します:-
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
バイト配列をインテントに渡します:-
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("picture", byteArray);
startActivity(intent);
バンドルからバイト配列を取得し、ビットマップイメージに変換します:-
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);
2)最初に画像をSDCardに保存し、次のアクティビティでこの画像をImageViewに設定します。
3)ビットマップをインテントに渡し、バンドルから次のアクティビティでビットマップを取得しますが、問題は、その時点でビットマップ/画像サイズが大きい場合、次のアクティビティで画像が読み込まれないことです。