将位图从一个 activity 发送到另一个错误
Send Bitmap from one activity to other Error
我正在尝试将四个位图从 "ActivityOne.java"
传递到另一个 Activity、"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);
//.........//
Activity一个
//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);
Activity两个
//********//
//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 中,保存完好,因为我可以在 Activity 中看到缩略图,但是当试图通过 Activity两个时,单独使用两个图像,无论是什么。
我试过:
如果我在图片 1、2、3 和 4 上拍照,我只能移动图片 1 和 2。
如果我在图 1,2 和 3 上拍照,我会单独与图 1 和图 2 一起度过。
如果我在图片 4、3 和 2 上拍照,我只能移动图片 2 和 3。
也就是说,我只能用显示的前两个图像。
有什么建议吗?
编辑(解决方案)
只使用一个包...简单。
不要传递多个捆绑包。使用一个包并将所有位图添加到其中。
我正在尝试将四个位图从 "ActivityOne.java"
传递到另一个 Activity、"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);
//.........//
Activity一个
//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);
Activity两个
//********//
//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 中,保存完好,因为我可以在 Activity 中看到缩略图,但是当试图通过 Activity两个时,单独使用两个图像,无论是什么。
我试过:
如果我在图片 1、2、3 和 4 上拍照,我只能移动图片 1 和 2。
如果我在图 1,2 和 3 上拍照,我会单独与图 1 和图 2 一起度过。
如果我在图片 4、3 和 2 上拍照,我只能移动图片 2 和 3。
也就是说,我只能用显示的前两个图像。
有什么建议吗?
编辑(解决方案)
只使用一个包...简单。
不要传递多个捆绑包。使用一个包并将所有位图添加到其中。