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