在onActivityResult方法之外使用捕获的图像位图

时间:2019-01-06 13:40:04

标签: android bitmap camera

我正在使用相机意图从活动中拍摄照片,如下面的代码所示,但是我需要在onActivityResult()方法之外使用捕获的图像位图,但这无法正常工作,我试图在方法之外声明位图然后在方法之外使用,但这没有用,似乎位图没有在onActivityResult中捕获图像,因此任何人都可以帮助在方法之外使用捕获图像的位图或保存它并获取其路径就像使用从图库中选择图像一样,所以我的目标是在onActivityResult()方法之外将捕获图像的位图用于图像处理,下面是我的代码,谢谢

 captureButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (checkSelfPermission(Manifest.permission.CAMERA)
                        != PackageManager.PERMISSION_GRANTED) {
                    requestPermissions(new String[]{Manifest.permission.CAMERA},
                            MY_CAMERA_PERMISSION_CODE);
                } else {
                    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(cameraIntent, CAMERA_REQUEST);
                }
            }
        });

以及onActivityResult()方法:

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);



    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {

        Bitmap photo = (Bitmap) data.getExtras().get("data");

        imageSelected.setImageBitmap(photo);


    }
}

1 个答案:

答案 0 :(得分:2)

我尝试了此步骤,对我有用

1)在onCreate方法(如波纹管

)上方定义位图对象
Bitmap photo; 

2)代替Bitmap photo = (Bitmap) data.getExtras().get("data");中的onActivityResult编写下面的代码

photo = (Bitmap) data.getExtras().get("data");

然后您就可以在自己喜欢的活动中的任何地方访问照片对象