Xamarin.android 从URI获取位图

Xamarin.android 从URI获取位图,xamarin.android,Xamarin.android,我正在从图库中选择图像。 这是我正在使用的代码 Intent intent = new Intent(); intent.SetType("image/*"); intent.SetAction(Intent.ActionGetContent); this.StartActivityForResult(Intent.CreateChooser(intent, "

我正在从图库中选择图像。
这是我正在使用的代码

            Intent intent = new Intent();
            intent.SetType("image/*");
            intent.SetAction(Intent.ActionGetContent);
            this.StartActivityForResult(Intent.CreateChooser(intent,
                    "Select Picture"), SelectPicture);
我正在
数据中获取此字符串。DataString
content://media/external/images/media/11
关于活动结果..
它不是所选图像的完整路径。但最终我想将其转换为位图。

在活动结果中

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

Bitmap bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data");
给出空错误

然而,当我从相机拍摄图像时,它工作正常,我得到了位图,而不是从图库中选择图像。我使用的代码:

配方:


要将Uri转换为位图,请执行以下示例:。 在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;
    }
安卓

val bitmap=BitmapFactory.decodeStream(contentResolver.openInputStream(uri))

沙马林机器人

var ins = context.ContentResolver.OpenInputStream(uri);
Bitmap bitamp = BitmapFactory.DecodeStream(ins);

虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!
public override void OnActivityResult(int requestCode, int resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);

    Uri uri = data.Data;
}
var ins = context.ContentResolver.OpenInputStream(uri);
Bitmap bitamp = BitmapFactory.DecodeStream(ins);