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

根据相机意图将图像设置为2个imageView

魏风华
2023-03-14
    public void Camera (View view) {
        Intent intent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE);
        file1 = Uri.fromFile(getOutputMediaFile());
        intent.putExtra(MediaStore.EXTRA_OUTPUT, file1);

        startActivityForResult(intent, 100);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent 
    data) {
        if (requestCode == 100) {
            if (resultCode == RESULT_OK && imageView1 == null) {
                imageView1.setImageURI(file1);
            } else {
                imageView2.setImageURI(file1);
            }
        }
    }

E/AndroidRuntime:致命异常:main java.lang.OutOfMemoryError位于Android.Graphics.BitmapFactor.NativeDecodeStream(原生方法)位于Android.Graphics.BitmapFactor.DecodeStream(BitmapFactor.JAVA:623)位于Android.Graphics.BitmapFactor.DecodeStream(BitmapFactor.DecodeStream:444)位于Android.Graphics.Drawable.Drawable.CreateFromResourceStream(年龄(handler.java:99)在android.os.looper.loop(looper.java:137)在android.app.activitythread.main(activitythread.java:5493)在java.lang.reflect.Method.invoke(原生方法)在java.lang.reflect.Method.invoke(原生方法)在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1209)在com.android.internal.os.zygoteinit.main(

谢谢!!

共有1个答案

松献
2023-03-14

我已经设法获得了我想要的结果,将这两个图像设置为各自的ImageViews。我的修改代码如下。

public void Camera (View view) {
    Intent intent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE);

    if (file1 == null) {
        file1 = Uri.fromFile(getOutputMediaFile());
        intent.putExtra(MediaStore.EXTRA_OUTPUT, file1);
        startActivityForResult(intent, 1);

    } else {

        file2 = Uri.fromFile(getOutputMediaFile());
        intent.putExtra(MediaStore.EXTRA_OUTPUT, file2);
        startActivityForResult(intent, 2);
    }

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
            imageView1.setImageURI(file1);
        }
    } else {
        imageView2.setImageURI(file2);
    }
}

然而,如果我拍摄第三张照片,它将设置为ImageView2...需要纠正这一点。

如果我启动另一个应用程序而不关闭这个应用程序,当我返回到它时,图像不再显示在imageViews上。

 类似资料:
  • 在我的应用程序中,我添加了图像上传功能,它可以很好地处理除相机图像之外的所有图像,每当我从画廊浏览相机图像时,肖像图像旋转90度。下面是我的代码片段。有人能帮我吗?我遵循了很多教程,但它们在kikat中都很好。但当同一教程不适用于ics、jellybean等时。。

  • 我已经被困在相机里6天了,但没有得到任何适当的解决方案。当我通过相机意图捕获图像时,图像正在旋转。我试图修复方向,但有时它没有在onActivityResult()中给出位图值。当我尝试在ImageView中设置图像时,它会显示一个黑色屏幕。这是我的密码请帮帮我- 我得到的图像在横向模式,但不是在potrait模式。相机预览在拍摄图像后自动旋转90度。

  • 我正在开发一个应用程序,在这个应用程序中,我以纵向方向拍摄照片,问题是当我稍后检索图像时,它是横向方向的(图片已逆时针旋转90度)。我曾经在课下使用过,但这里每次都是0(零)。所以,我不知道怎么解决它。

  • null 那个代码有什么问题?我不明白为什么不能将ImageRi发送到ImageView。我还验证了我正在传递给setImageURI函数的Uri值是正确的。

  • 问题内容: 我环顾四周,但似乎并没有解决这个非常恼人的问题的可靠答案。 我以纵向拍摄照片,然后单击“保存/放弃”,按钮也以正确的方向放置。问题是当我随后在横向上检索图像时(图像已逆时针旋转90度) 我不想强迫用户以特定方向使用相机。 有没有办法检测照片是否以人像模式拍摄,然后解码位图并将其向上翻转? 问题答案: 照片始终以相机内置在设备中的方向拍摄。为了使图像正确旋转,您必须读取存储在图片中的方向

  • 我正在尝试使用摄像头将图像上传到firebase。但是,我得到的图像质量太低(不可读)。我已经编写了以下代码(没有编译错误)。但是,我不明白为什么它不能产生一个可读的图像。 我尝试过改变位图的质量参数。压缩,但图像质量保持不变。但同样的压缩代码适用于来自gallery的图像。