如何共享并保存ImageView从第一活动到第三活动

问题描述:

活动1:我有一个imageview,其中从相机和画廊拍摄的图像被设置,它工作正常。在这个活动中有一个右键点击按钮,将您重定向到第二个活动。如何共享并保存ImageView从第一活动到第三活动

活动2:在这个活动我有四个选项

  1. 保存
  2. 分享
  3. 分享通过Instagram的
  4. 分享通过Facebook

活动3:从上述四第三项活动的选择相应地运作。 现在我不知道如何将第一个活动中拍摄的图像传递给第三个活动。

我的努力:在从相机拍摄的第一活动图像:

Intent i=new Intent(Camera.this,SaveVia.class); 
i.putExtra("image", thumbnail); 
startActivity(i); 

在第二个活动SaveVia:

Intent intent2 = new Intent(SaveVia.this, Save.class); 
Bitmap receiptimage = (Bitmap)getIntent().getExtras().getParcelable("image") 
startActivity(intent2); 

在第三个活动叫节省:

Bitmap receiptimage = (Bitmap) getIntent().getExtras().getParcelable("imagepass"); 
     // receipt.setImageBitmap(receiptimage); 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     receiptimage.compress(Bitmap.CompressFormat.PNG, 90, bytes); 
     File storagePath = new File(Environment.getExternalStorageDirectory() + "/PhotoAR/"); 
     storagePath.mkdirs(); 

     File destination = new File(storagePath, Long.toString(System.currentTimeMillis()) + ".jpg"); 

     FileOutputStream fo; 
     try { 
      destination.createNewFile(); 
      fo = new FileOutputStream(destination); 
      fo.write(bytes.toByteArray()); 
      fo.close(); 
      Toast.makeText(Save.this,"No Error",Toast.LENGTH_LONG).show(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
      Toast.makeText(Save.this,"Error Arrived",Toast.LENGTH_LONG).show(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      Toast.makeText(Save.this,"Error Arrived again",Toast.LENGTH_LONG).show(); 
+0

尝试使用界面... –

+1

请看看这个。 [链接](https://stackoverflow.com/questions/4352172/how-do-you-pass-images-bitmaps-between-android-activities-using-bundles)。这是你的问题的重复。另外,正如在链接的问题中,使用parcelable实际传递图像并不是一个好主意。将图像路径传递给第二个和第三个活动,然后使用路径拉出图像会更好。这将是一种更简单的方法。 :) – imaadhrizni

+0

[你如何通过使用捆绑的android活动之间传递图像(位图)?](https://stackoverflow.com/questions/4352172/how-do-you-pass-images-bitmaps-between-android - 活动-使用-束) – imaadhrizni

我推荐使用File I/O将位图保存到磁盘。使用putExtra将文件路径放入您的意图包中,然后在其他屏幕中重新创建位图。将大型位图放入带有意图的包中可能会导致TransactionTooLarge异常。

看看Getting path of captured image in android using camera intent

@AND 您不需要将位图作为Parcelable从意图f中的一个activity.Pass文件路径传递从一个活动到另一个活动。

当您捕获图像获取路径onActivityresult并保存该路径。 并重定向这两个第二activity.And从该路径显示您的位图。只需分享从路径 Uri分享在Facebook和Instagram上。