NagarjunaReddy
NagarjunaReddy

Reputation: 8645

How to pass bitmap from one activity to another

i have bitmap in ActivityA i want to pass the bitmap from here to ActivityB, i googled for this. when i use this

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);

for getting

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

i am getting this error !!! FAILED BINDER TRANSACTION !!! . how can i solve this problem.

Upvotes: 5

Views: 11509

Answers (4)

Lalit Poptani
Lalit Poptani

Reputation: 67286

I tried and its working as below using intent.putExtra("name", bitmap)

While passing with intent,

Intent intent = new Intent(Current.this, Next.class);
intent.putExtra("bmp", bitmap);
startActivity(intent);

While fetching,

Bitmap bitmap = getIntent().getParcelableExtra("bmp");

OR

Other option is to use Application class,

You can also use a class that extends Application and have a setter getter for Bitmap and call it from every Acitivity.

((myApplication_class_name)getApplication()).setBitmap(bmp);

and fetch the Bitmap using,

((myApplication_class_name)getApplication()).getBitmap();

Upvotes: 3

ct_rob
ct_rob

Reputation: 521

Your code is correct for putting bitmaps into the extras and works fine for me with small images. But it seems that there is a limit for the size of the Parcelable extra. See http://groups.google.com/group/android-developers/browse_thread/thread/7322a84adcfee567?pli=1.

You might want to store the image first and only hand over the URI to the store location.

Edit: Using a public static field for the bitmap as suggested by udaykiran violates so many OO principles I don't even know where to start.

Upvotes: 13

medampudi
medampudi

Reputation: 399

I dont think that is the right method... you can use this link for the feature to be implemented. i too have used something like this itself.

Upvotes: 1

Uday
Uday

Reputation: 6023

You can simply name you Bitmap as static first.

then create a method like

public static Bitmap getBitmap(){
return bitmap;
}

then you can simply call from other activities,

bitmapwantedclass.getBitmap();

Hope it helps

Upvotes: -5

Related Questions