Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么照相机活动返回空值?_Android_Xamarin - Fatal编程技术网

Android 为什么照相机活动返回空值?

Android 为什么照相机活动返回空值?,android,xamarin,Android,Xamarin,我使用下面的代码从相机中获取图像,并将其放在图像视图(imgViewAds)中 这里是OnActivityResult,camare发送结果 protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (resultCode == Result.Ok && (data != null)) { Bundle extras

我使用下面的代码从相机中获取图像,并将其放在图像视图(imgViewAds)中

这里是OnActivityResult,camare发送结果

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{

    if (resultCode == Result.Ok && (data != null))
    {
        Bundle extras = data.Extras;
        Bitmap imageBitmap = (Bitmap)extras.Get("data");
        imgViewAds.SetImageBitmap(imageBitmap);

        MemoryStream stream = new MemoryStream();
        imageBitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
        addAds.AdsImage = stream.ToArray();
    }
    base.OnActivityResult(requestCode, resultCode, data);
}

但是发送到OnActivityResult的数据为空,图像未进入图像视图。

当您传递带有要写入的URI的
额外输出时,相机意图将为
null
,并且图片位于您传递的URI中

因此,您可以简单地删除这两行:

Android.Net.Uri imageUri = Android.Net.Uri.FromFile(imageFile);
cameraIntent.PutExtra(MediaStore.ExtraOutput, imageUri);
请注意,通过这种方式可以获得图像的缩略图。因此,如果您想要整个图像,您可以使用类似的东西(我没有测试代码,但您可以得到这个想法):


当您传递带有要写入的URI的
EXTRA_OUTPUT
时,相机意图将为
null
,图片位于您传递的URI中

因此,您可以简单地删除这两行:

Android.Net.Uri imageUri = Android.Net.Uri.FromFile(imageFile);
cameraIntent.PutExtra(MediaStore.ExtraOutput, imageUri);
请注意,通过这种方式可以获得图像的缩略图。因此,如果您想要整个图像,您可以使用类似的东西(我没有测试代码,但您可以得到这个想法):

if (requestCode == CAMERA_REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            addAds.ImageName = Guid.NewGuid().ToString() + ".jpg";
        Java.IO.File imageFile = new Java.IO.File(AdsAdapter.ImagePath(addAds.ImageName));
            Uri uri = Uri.fromFile(file);
            Bitmap bitmap;
            try {
                bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                bitmap = cropAndScale(bitmap, 300); // if you mind scaling
                profileImageView.setImageBitmap(bitmap);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }