how to send imageview from one activity to other

10,507

You don't need to convert the Bitmap to a byte array. Bitmap is parcelable so you can just use putParcelable(String, Parcelable) to add it to the Bundle.

Edit:

For example:

Bundle extras = new Bundle();
extras.putParcelable("Bitmap", bmp);
intent.putExtras(extras);
startActivity(intent);

Then in the second activity:

Bundle extras = getIntent().getExtras();
Bitmap bmp = (Bitmap) extras.getParcelable("Bitmap");
Share:
10,507
Ani
Author by

Ani

Android Developer trainee

Updated on June 30, 2022

Comments

  • Ani
    Ani almost 2 years

    I have an imageview in listview in first activity, I want to send my imageview into second activity on clicl of listview item.

    I have tried following code-

    Convert drawable image into bytearray:-

    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    byte[] byteArray = stream.toByteArray();
    

    Sending through Intent-

    Intent intent=new Intent(PicturesList.this,PictureDetail.class);
                    intent.putExtra("Bitmap", byteArray);
                    startActivity(intent);
    

    In second activity-

    Bundle extras = getIntent().getExtras();
            byteArray = extras.getByteArray("Bitmap");
    

    and

    Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
                            imageview.setImageBitmap(bmp);
    

    But Problem is here-

    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    

    This require drawable image and i have imageview, Can I convert my imageview into drawable? or anything alse? How to send imageview instead of drawable. Anybody have done this before.

    This is how I set image in imageview

    new AsyncTask<Void,Void,Void>() {
                @Override
                protected Void doInBackground(Void... params) {
    
    
                    try {
                        URL newurl = new URL("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png");
                        bitmap= BitmapFactory.decodeStream(newurl.openConnection().getInputStream());
                        //bitmap = Bitmap.createScaledBitmap(bitmap, 50,50, true);
                    }
                    catch (MalformedURLException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                //  bitmap=imageLoader.DisplayImage("http://farm3.static.flickr.com/2199/2218403922_062bc3bcf2.jpg", imageview);
                    //bitmap = Bitmap.createScaledBitmap(bitmap, imageview.getWidth(), imageview.getHeight(), true);
                    return null;
                }
                @Override
                protected void onPostExecute(Void result) {
                    super.onPostExecute(result);
                    imageview.setImageBitmap(bitmap);
                }
            }.execute();
    
  • Ani
    Ani over 11 years
    can u elabborate on this. Bundle extras=new Bundle(); extras.putParcelable("Bitmap", bitmap); is it write?
  • Ani
    Ani over 11 years
    I have set that image to imageview. Do u mean I should send imageview id to next activity through intent.
  • Ani
    Ani over 11 years
    how much data can we send through intent. Is the large size image can create problem for me?