将位图从一个活动发送到其他错误

时间:2015-01-14 00:45:18

标签: android android-studio imageview

我尝试将四个位图从"ActivityOne.java"传递到另一个活动,"ActivityTwo.java"

我的代码

声明ImageViews

//..........//

private ImageView img_1, img_2, img_3, img_4;

//........//


 onCreate...>>>     //.........//

        img_1 = (ImageView) this.findViewById(R.id.img_1);
        img_2 = (ImageView) this.findViewById(R.id.img_2);
        img_3 = (ImageView) this.findViewById(R.id.img_3);
        img_4 = (ImageView) this.findViewById(R.id.img_4);

//.........//

ActivityOne

        //Image 1
        img_1.buildDrawingCache();
        Bitmap image= img_1.getDrawingCache();

        Bundle extras = new Bundle();
        extras.putParcelable("imagebitmap", image);

        //Image 2
        img_2.buildDrawingCache();
        Bitmap image2= img_2.getDrawingCache();

        Bundle extras2 = new Bundle();
        extras2.putParcelable("imagebitmap2", image2);

        //Image 3
        img_3.buildDrawingCache();
        Bitmap image3= img_3.getDrawingCache();

        Bundle extras3 = new Bundle();
        extras3.putParcelable("imagebitmap3", image3);

        //Image 4
        img_4.buildDrawingCache();
        Bitmap image4= img_4.getDrawingCache();

        Bundle extras4 = new Bundle();
        extras4.putParcelable("imagebitmap4", image4);

        Intent intent = new Intent(this, ActivityTwo.class);

        intent.putExtras(extras); //image1
        intent.putExtras(extras2); //image2
        intent.putExtras(extras3); //image3
        intent.putExtras(extras4); //image4

        startActivity(intent);

ActivityTwo

//********//


//get image1
Bundle extras = getIntent().getExtras();
Bitmap bmp = (Bitmap) extras.getParcelable("imagebitmap");

img_1_confir.setImageBitmap(bmp);

//get ImageView 2
Bundle extras2 = getIntent().getExtras();
Bitmap bmp2 = (Bitmap) extras2.getParcelable("imagebitmap2");

img_2_confir.setImageBitmap(bmp2);

//get ImageView 3
Bundle extras3 = getIntent().getExtras();
Bitmap bmp3 = (Bitmap) extras3.getParcelable("imagebitmap3");

img_3_confir.setImageBitmap(bmp3);

//get ImageView 4
Bundle extras4 = getIntent().getExtras();
Bitmap bmp4 = (Bitmap) extras4.getParcelable("imagebitmap4");

img_4_confir.setImageBitmap(bmp4);

//*******//

问题

这个工作,越来越少,我不得不直接从相机设备说出跛脚图像,并将每个单独保存在ImageView中,保存得很好,因为我可以在ActivityOne中看到缩略图,但在尝试传递ActivityTwo时,无论如何,单独花两张图片。

我试过了:

如果我在图片1,2,3和4上拍照,我只能设法移动图像1和2.

如果我在图片1,2和3上拍照,我会单独和图像1和2一起使用。

如果我在图片4,3和2上拍照,我只能设法移动图像2和3.

也就是说,我只能花费前两张图片。

有什么建议吗?

编辑(解决方案)

仅使用一个捆绑......简单。

1 个答案:

答案 0 :(得分:1)

不要传递多个捆绑包。使用一个捆绑包并将所有位图添加到该捆绑包中。