当前位置: 首页 > 知识库问答 >
问题:

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

邵研
2023-03-14

活动1:我有一个图像视图,其中从相机和画廊拍摄的图像被设置,它工作正常。在这个活动中有一个右键单击按钮,它将重定向到第二个活动。

活动2:在这个活动中,我有四个选择

  1. 保存

活动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();

共有2个答案

呼延智明
2023-03-14

我建议使用文件I/O将位图保存到磁盘。使用putExtra将文件的路径放入意图包,并在其他屏幕中重新创建位图。将带有意图的大位图放入捆绑包可能会导致TransactionTooBig异常。

看看在Android中使用相机意图获取捕获图像的路径

周翰
2023-03-14

@AND你不需要通过位图作为Parcelable从一个活动。将文件路径从一个活动传递到另一个活动。

捕获图像时,在onActivityresult中获取路径并保存该路径。并重定向两秒钟的活动。从该路径显示位图。只需在facebook和Instagram上共享路径中的Uri。

 类似资料:
  • 次要活动(通过意图向主活动发送“endpoint”字符串): 主活动(从次要活动获取字符串): 在Fragment类上,我试图在TextView上显示数据: 如何修复它并将字符串从一个活动发送到另一个活动上的片段? 下面是XML:

  • 我在一个活动中有一个列表视图,在自定义适配器中有一个信息图标。当用户点击该信息按钮时,下一个活动将打开,当用户点击更新按钮时,在下一个活动中标记出勤率后,第二个活动应该完成,第一个活动列表视图应该更新。 我成功地做了什么:我已经成功地标记了出席情况并更改了listview的颜色,但我在关闭第二个活动并重新启动第一个活动后这样做了。通过这种方式,由于再次开始活动,listview会得到更新。 我无法

  • 在活动1中,我将一张图片从url加载到imageview中(使用glide)。当我切换到活动2时,我断开了网络连接,我需要在另一个imageview中加载相同的图像。我该如何实现这一点?使用glide缓存在某处的图像可以做到这一点吗?

  • 我在活动2中有一个字符串 我想在activity1的文本字段中插入此字符串。我该怎么做?

  • 我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?

  • 我试图将图像从一个活动发送到另一个活动,但我不知道如何设置ImageView。