Skip to content Skip to sidebar Skip to footer

How To Send The Bitmap Into Bundle

I'm new to android. I want to pass bitmap into Bundle. But I can't find any solution for it. Actually, I'm confused. I want to display an image in a Dialog fragment. But I don't kn

Solution 1:

No need to convert bitmap to byte array. You can directly put bitmap into bundle. Refer following code to put bitmap into bundle.

bundle.putParcelable("BitmapImage",bitmapname);

Get bitmap from Bundle by following code

Bitmapbitmapimage= getIntent().getExtras().getParcelable("BitmapImage");

Solution 2:

First of all convert it to a Byte array before adding it to intent, send it out, and decode.

//Convertion to byte array

ByteArrayOutputStreamstream=newByteArrayOutputStream();
  bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
  byte[] byteArray = stream.toByteArray();

Bundleb=newBundle();
b.putByteArray("image",byteArray);


  // your fragment code 
fragment.setArguments(b);

get Value via intent

byte[] byteArray = getArgument().getByteArrayExtra("image");
Bitmapbmp= BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

Solution 3:

If you want to pass image using bundle then i am sure it will help you.

Bundlebundle=newBundle();
bundle.putParcelable("bitmap", bitmap);
fragment.setArguments(bundle);

Solution 4:

if you are using NavigationComponent, you should use safeArgs !

you can put arguments in nav_graph like this :

<argumentandroid:name="profileImage"app:nullable="true"app:argType="android.graphics.Bitmap" />

and send it like it : (First Fragment)

findNavController().navigate(SettingFragmentDirections.actionSettingFragmentToHomeFragment(bitmap))

and give it like this : (Second Fragment)

valbitmapimage=
            arguments?.getParcelable<Bitmap>("profileImage")


        user_profile_img.setImageBitmap(bitmapimage)

read more : https://developer.android.com/guide/navigation/navigation-pass-data

Solution 5:

I think it is easier to send the path or address of the image as a string and load it on the other side.

If the image is a web address, you can use Glide or Picasso libraries and cache them, so on the other activities or fragments it will not load twice.

Post a Comment for "How To Send The Bitmap Into Bundle"