Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 照相机拍摄的图像不希望显示在ImageView中_Java_Android_Bitmap_Android Camera_Android Imageview - Fatal编程技术网

Java 照相机拍摄的图像不希望显示在ImageView中

Java 照相机拍摄的图像不希望显示在ImageView中,java,android,bitmap,android-camera,android-imageview,Java,Android,Bitmap,Android Camera,Android Imageview,我有一个ImageView,希望能够从中加载图像: 画廊-效果很好 摄像头-不加载任何内容 使用这两种不同操作时的日志非常相似,除了相机操作显示到最后: 10-21 23:24:18.304:D/android.widget.GridLayout(4447):水平 约束条件:x6-x0>720,x5-x0>720,x5-x4612,y4-y0

我有一个ImageView,希望能够从中加载图像:

  • 画廊-效果很好

  • 摄像头-不加载任何内容

  • 使用这两种不同操作时的日志非常相似,除了相机操作显示到最后:

    • 10-21 23:24:18.304:D/android.widget.GridLayout(4447):水平 约束条件:x6-x0>720,x5-x0>720,x5-x4<20,x4-x3< 142、x3-x2<70、x2-x1<32、x1-x0<138不一致; 永久移除:x5-x4<20
    • 10-21 23:24:18.324:D/android.widget.GridLayout(4447):垂直 约束条件:y1-y0>468,y2-y1>30,y3-y2>120,y3-y0> 1140,y4-y3>612,y4-y0<1140,y3-y2<120,y2-y1<30 不一致的永久移除:y4-y0<1140,y3-y2<120
    我有一种感觉,这就是为什么图像没有显示的原因。该应用程序不会出现任何故障或其他任何情况,从UI角度看不会发生任何事情

    代码(相机操作和画廊操作共享)为:

    路径正确,位图不为空,所有内容看起来都正常,但图像未显示。谢谢你的帮助

    试试这个:--

    试试这个:--


    我认为错误在文件创建中

    下面的代码对我有用

    File photofile = new File(Environment
                        .getExternalStorageDirectory(),"sample"
                        + System.currentTimeMillis() + ".jpg");
                photFileUri = Uri.fromFile(photofile);
                photoPath = photofile.getAbsolutePath();
                Log.v("camera photo path is    ","          "+photoPath);
                Intent cameraIntent = new Intent(
                        android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, photFileUri);
                cameraIntent.putExtra("return-data", true);
                startActivityForResult(cameraIntent,1);
    
    在OnActivityForResult()方法中,您将获得路径

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
        switch (requestCode) {
        case 1:
                    //here u can use **photoPath** to display image
    }
    

    }

    我认为错误在文件创建中

    下面的代码对我有用

    File photofile = new File(Environment
                        .getExternalStorageDirectory(),"sample"
                        + System.currentTimeMillis() + ".jpg");
                photFileUri = Uri.fromFile(photofile);
                photoPath = photofile.getAbsolutePath();
                Log.v("camera photo path is    ","          "+photoPath);
                Intent cameraIntent = new Intent(
                        android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, photFileUri);
                cameraIntent.putExtra("return-data", true);
                startActivityForResult(cameraIntent,1);
    
    在OnActivityForResult()方法中,您将获得路径

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
        switch (requestCode) {
        case 1:
                    //here u can use **photoPath** to display image
    }
    

    }

    放入
    mPicture.recycle()当您仍在使用
    mPicture
    时,会导致灾难-联机帮助说,只有在您确定位图没有进一步的用途时才应该调用
    ,这在您的示例中显然是不正确的。我已经成功了。@KenY-N谢谢!以前,它给我OOM而不使用回收。然而,正如纳雷什所建议的那样,在将Uri发送到照相机意图后,它发生了变化。这也修复了从相机加载图片的问题当您仍在使用
    mPicture
    时,会导致灾难-联机帮助说,只有在您确定位图没有进一步的用途时才应该调用
    ,这在您的示例中显然是不正确的。我已经成功了。@KenY-N谢谢!以前,它给我OOM而不使用回收。然而,正如纳雷什所建议的那样,在将Uri发送到照相机意图后,它发生了变化。这也修复了从相机加载图片的问题。这并省略了
    mPicture.recycle()修复了问题,谢谢!此选项并省略
    mPicture.recycle()修复了问题,谢谢!