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

Android 在onActivityResult方法之外使用捕获的图像位图,android,bitmap,camera,Android,Bitmap,Camera,我正在使用camera intent从我的活动中拍照,如下代码所示,但我需要在onActivityResult()方法之外使用捕获的图像位图,但这不起作用,我尝试在方法之外声明位图,然后在方法之外使用,但这不起作用,位图似乎没有捕获onActivityResult中的图像,因此有人可以帮助在方法之外使用捕获图像的位图,或者像使用“从库中选择图像”一样保存它并获取其路径,因此我的目标是在onActivityResult()方法之外使用捕获图像的位图进行图像处理,下面是我的代码,谢谢 captur

我正在使用camera intent从我的活动中拍照,如下代码所示,但我需要在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()方法:


我尝试了这些步骤,它对我有效

1) 在
onCreate
方法上方定义位图对象,如下面所示

Bitmap photo; 
2) 而不是
Bitmap photo=(Bitmap)data.getExtras().get(“数据”)
onActivityResult
编写以下代码

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

在那之后,你可以在你喜欢的活动中的任何地方访问你的照片对象

我尝试了这个步骤,它对我起了作用

1) 在
onCreate
方法上方定义位图对象,如下面所示

Bitmap photo; 
2) 而不是
Bitmap photo=(Bitmap)data.getExtras().get(“数据”)
onActivityResult
编写以下代码

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

之后,您可以在活动中的任何地方访问您喜欢的照片对象

这不起作用,因为位图照片应该在类的开头在onCreate()方法之外声明,否则我们不能在活动的任何方法中使用它。最后,您的回答给了我一个想法,并帮助我感谢您,解决方案是在类的开头声明位图photo,oncreate方法通过(photo=null;)初始化它,然后使用photo=(Bitmap)data.getExtras().get(“data”);在onActivityResult中,然后您可以在活动中的任何地方使用它,我以前尝试过这一点,但没有在onCreate()中初始化,并且不起作用,因此键在onCreate()中初始化它;谢谢你!!我说的是onCreate方法上面的位图,我指的是类开始时onCreate之外的位图,而不是onCreate@wisam他是对的,请考虑这一点:“HadioMaMaDi是的,我以前尝试过,没有在OnCeCuto()中初始化它,因为它必须在OnCeCuto()之上声明。并在onCreate()中初始化为null,谢谢这不起作用,因为位图照片应该在类的开头在onCreate()方法之外声明,否则我们不能在活动的任何方法中使用它。最后,你的回答给了我一个想法,帮助我谢谢你,解决方案是在类的开头声明位图photo,oncreate方法通过(photo=null;)初始化它,然后使用photo=(Bitmap)data.getExtras().get(“data”);在onActivityResult中,然后您可以在活动中的任何地方使用它,我以前尝试过这一点,但没有在onCreate()中初始化,并且不起作用,因此键在onCreate()中初始化它;谢谢你!!我说的是onCreate方法上面的位图,我指的是类开始时onCreate之外的位图,而不是onCreate@wisam他是对的,请考虑这一点:“HadioMaMaDi是的,我以前尝试过,没有在OnCeCuto()中初始化它,因为它必须在OnCeCuto()之上声明。并在oncreat()中初始化为null,谢谢