从URI获取位图

Riz*_*taz 3 xamarin.android

我正在从画廊中选择图像.
这是我正在使用的代码

            Intent intent = new Intent();
            intent.SetType("image/*");
            intent.SetAction(Intent.ActionGetContent);
            this.StartActivityForResult(Intent.CreateChooser(intent,
                    "Select Picture"), SelectPicture);
Run Code Online (Sandbox Code Playgroud)

data.DataString content://media/external/images/media/11在Activty结果中获取此字符串..
这不是所选图像的完整路径.但最终我想将其转换为位图.

在活动结果..

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

Bitmap bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data");
Run Code Online (Sandbox Code Playgroud)

给出空错误.

当我从相机捕获图像时它如何工作,而不是从库中选择图像它工作正常,我得到位图.我正在使用的代码:

 var cameraIntent = new Intent(MediaStore.ActionImageCapture);
 cameraIntent.PutExtra(MediaStore.ExtraOutput, imageUri);
 this.StartActivityForResult(cameraIntent, TakePicture);
Run Code Online (Sandbox Code Playgroud)

小智 7

要从Uri转换为Bitmap,请遵循以下示例:convertUriToBitmap.在monodroid中代码如下:

private Android.Graphics.Bitmap NGetBitmap(Android.Net.Uri uriImage)
    {
        Android.Graphics.Bitmap mBitmap = null;
         mBitmap = Android.Provider.MediaStore.Images.Media.GetBitmap(this.ContentResolver, uriImage);
         return mBitmap;
    }
Run Code Online (Sandbox Code Playgroud)