Android onActivityResult返回空意图
我正试图从照相机中捕捉图像。但它在ActivityResult上返回空意图。 这是我的密码Android onActivityResult返回空意图,android,android-image-capture,Android,Android Image Capture,我正试图从照相机中捕捉图像。但它在ActivityResult上返回空意图。 这是我的密码 CaptureImageFromCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
CaptureImageFromCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 7);
}
});
而onActivityResult是
我是Android新手,所以请详细解释答案。
提前谢谢 通过以下步骤开始您的工作:
startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), 100);
因此,在从照相机捕获图像后,通过intent获取有关图像的数据:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri yourCapturedImage = intent.getData();
}
确保您已添加相机权限、在清单中写入权限以及交叉验证运行时权限 使用下面的意图,并指定写入捕获图像的路径-
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri outputUri = Uri.fromFile("path of your directory");
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
startActivityForResult(intent, 7);
您还可以在onActivityResult中使用setImageURI而不是setImageBitmap
首先,在android清单中添加摄像头权限。如果您的android版本大于棒棒糖,则需要添加运行时权限
然后在onActivityResult中使用setImageUrI
Uri imageUri=data.getData将不再工作。。
首先从如下数据中获取位图:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
val imageBitmap = data.extras.get("data") as Bitmap
imageView.setImageBitmap(imageBitmap)
}
}
然后保存位图图像。。详情请参阅:
你有没有提供拍照许可。如果android版本大于棒棒糖Pare,请确保在运行时授予相机权限。您确定intent对象为null或intent对象中的数据为null?已提供data intent is null相机权限。应用程序允许拍摄图像。但当我使用位图时,它会给出空位图
<uses-permission android:name="android.permission.CAMERA"/>
CaptureImageFromCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 7);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case 7:
/*case 7 for image results and display image in imageview via Uri*/
if (resultCode == RESULT_OK)
{
Uri imageUri = data.getData();
ImageViewHolder.setImageURI(imageUri);
}
return;
default:
return;
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
val imageBitmap = data.extras.get("data") as Bitmap
imageView.setImageBitmap(imageBitmap)
}
}