首页 > 解决方案 > 从相机捕获图像并将其设置为图像视图

问题描述

我正在创建一个从相机捕获图像并将其设置为 imageview 的应用程序。

这是代码:

button.setOnClickListener(v -> {
        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED){
            Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, 1);
        }else {
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, 2);
        }
    });

@Override
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode==1 && resultCode==RESULT_OK && data!=null){
             Toast.makeText(this, "yes", Toast.LENGTH_SHORT).show();
             try {
                 Bitmap bitmap=MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData())
                 imageView.setImageBitmap(bitmap);
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
     }

图像视图为空。

但是当我使用这个时:

Bitmap bitmap=(Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(bitmap);

代替:

Bitmap bitmap=MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData())
imageView.setImageBitmap(bitmap);

我正在获取图像。

这两种方法有什么区别为什么我在第二种方法中得到正确的输出

标签: javaandroid

解决方案


推荐阅读