Si vous souhaitez transférer le bitmap entre les activités / fragments
Activité
Pour passer un bitmap entre les activités
Intent intent = new Intent(this, Activity.class);
intent.putExtra("bitmap", bitmap);
Et dans la classe Activity
Bitmap bitmap = getIntent().getParcelableExtra("bitmap");
Fragment
Pour passer une image bitmap entre des fragments
SecondFragment fragment = new SecondFragment();
Bundle bundle = new Bundle();
bundle.putParcelable("bitmap", bitmap);
fragment.setArguments(bundle);
Pour recevoir à l'intérieur du SecondFragment
Bitmap bitmap = getArguments().getParcelable("bitmap");
Transfert de grands bitmaps
Si vous obtenez une transaction de classeur ayant échoué, cela signifie que vous dépassez le tampon de transaction de classeur en transférant un élément volumineux d'une activité à une autre.
Donc, dans ce cas, vous devez compresser le bitmap en tant que tableau d'octets, puis le décompresser dans une autre activité , comme celle-ci
Dans la première activité
Intent intent = new Intent(this, SecondActivity.class);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPG, 100, stream);
byte[] bytes = stream.toByteArray();
intent.putExtra("bitmapbytes",bytes);
Et dans la SecondActivity
byte[] bytes = getIntent().getByteArrayExtra("bitmapbytes");
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);