PutExtra() で Button に設定した Background Image をインテント オブジェクトとともに別の Class に渡したいと思います。
誰もそれを行う方法を知っていますか?
ありがとうデビッドブラウン
PutExtra() で Button に設定した Background Image をインテント オブジェクトとともに別の Class に渡したいと思います。
誰もそれを行う方法を知っていますか?
ありがとうデビッドブラウン
送信者アクティビティ:
Bitmap bitmap = BitmapFactory.decodeResource
(getResources(), R.drawable.sticky_notes); // your bitmap
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bs);
intent.putExtra("byteArray", bs.toByteArray());
受信者アクティビティ:
if(getIntent().hasExtra("byteArray")) {
ImageView imv= new ImageView(this);
Bitmap bitmap = BitmapFactory.decodeByteArray(
getIntent().getByteArrayExtra("byteArray"), 0, getIntent().getByteArrayExtra("byteArray").length);
imv.setImageBitmap(bitmap);
}
インテントは 40 キロバイトしか保持できません。画像を 40 キロバイト未満に圧縮できる場合は、extras に入れることができます
intent.putExtra("imageData", bitmap)
より良いアプローチは、ビットマップを直接渡すのではなく、リンクを作成することです。
intent.putExtra("image_url",R.drawable.image);
これを試して...
最初にビットマップで画像を取得します。
Bitmap tileImage = BitmapFactory.decodeResource(getResources(), R.drawable.floore);
バイト配列に変換します。
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Bundle b = new Bundle();
b.putByteArray("camara",byteArray);
Intent intent3 = new Intent(this,Second.class);
intent3.putExtras(b);
startActivity(intent3);
メモリから削除されないことが確実な場合 (つまり、そのようなビットマップを保存しないでください)を渡すことができますBitmap
(実装しているため)。Parcelable
Bitmap
それ自体は、ネイティブ リソースの小さな Java ラッパーにすぎないため、多くのスペースを必要としません。