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

如何在Android中将图像从一个activity发送到另一个?

伏子辰
2023-03-14

我在一个类中有一个imageView,在单击imageView时,会出现一个对话框,它有两个选项,可以从相机中获取图像,也可以打开设备的图像库。我想将图像从一个类发送到另一个类,这样它就可以出现在ImageView中。我搜索了很多小时,但我只得到关于从一个类到另一个类的文本数据发送。谁能告诉我从一个类到另一个类的图像发送?

这是来自sender类的代码,它将获取图像。

   takeImg.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                if(event.getAction() == event.ACTION_UP)
                {
                    i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(i,cameraData);
                }
                return true;
            }
        });
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK)
        {
            Bundle extras=data.getExtras();
            bmp=(Bitmap)extras.get("data");
        }
    }

谢谢你的帮助

共有3个答案

姚自强
2023-03-14

我更喜欢的方法(我认为最直接的方法)是在应用程序中使用自己的应用程序实例,存储超过1个activity通用的变量。

创建一个类,让我们将它称为mainapplication,它扩展了android.app.application,并在清单中声明它:

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name=".MainApplication">

然后在activity中得到application对象的一个实例,如下所示:

MainApplication application = ((MainApplication)getApplication());

在这个应用程序对象中,您可以存储任何应用程序级数据,并像往常一样使用它:

application.setImage(...);

application.getImage();
闽高峯
2023-03-14

我记得关于putExtra()和getExtra()的大小有限制,大约1MB。所以一张图片可能会超过这个限制。把路径传给照片怎么样?

荆鸿畅
2023-03-14

您可以在activity中以位图的形式获取图像,并使用intent.putExtra()将其作为位图传递给另一个activity,如下所示:

首先是activity。

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("bmp_Image", bmp); 

第二个activity说:

Bitmap bmp = (Bitmap) intent.getParcelableExtra("bmp_Image"); 

您不需要获取url和从url加载。

那是将捕获的图像从一个activity传递到另一个activity的最简单的方法

 类似资料:
  • 问题内容: 我正在尝试从一个发送客户类的对象,Activity然后在另一个对象中显示它Activity。 客户类的代码: 我想将其对象从一个对象发送Activity到另一个对象,然后在另一个对象上显示数据Activity。 我该如何实现? 问题答案: 一种选择是让你的自定义类实现该接口,然后可以使用该方法的变体在意图中额外传递对象实例。 伪代码:

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

  • 问题内容: 如何使用Intent类的方法将自定义类型的对象从一个传递到另一个? 问题答案: 如果您只是传递对象,那么Parcelable就是为此而设计的。与使用Java的本机序列化相比,使用它需要付出更多的努力,但是它的速度更快(我的意思是,WAY更快)。 在文档中,有关如何实现的一个简单示例是: 请注意,如果要从给定的宗地中检索多个字段,则必须按照将其放入的相同顺序(即,采用FIFO方法)进行操

  • 主谋。该类字符串数组中的java存储所有值public string[]itemcodes;我要访问主目录的条目代码。JAVA 主要的JAVA 主谋。java系统。出来println(项目代码[位置]);我在这里打印所有代码。不,我想在Main中打印相同的结果。JAVA

  • 我需要一些暑期项目的帮助 这是我的事件片段 这是我的MyList片段 我正在使用RecyclerViewCardView显示事件。其想法是,用户可以单击每张卡片右侧的大加号,卡片将显示在MyList片段中。我想问一下,是否可以将一张卡直接从一个片段转移到另一个片段?而且,这两个片段都包含在同一个活动中,这使得它有点棘手(我还没有找到任何可用的解决方案)。 如果不可能,另一种方法是将CardView