3

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

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

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");

给出空错误。

但是,当我从相机捕获图像时,它没有从图库中选择图像,它工作正常,我得到了位图。我正在使用的代码:

 var cameraIntent = new Intent(MediaStore.ActionImageCapture);
 cameraIntent.PutExtra(MediaStore.ExtraOutput, imageUri);
 this.StartActivityForResult(cameraIntent, TakePicture);
4

4 回答 4

7

要将 Uri 转换为位图,请遵循以下示例: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;
    }
于 2012-07-10T14:24:48.037 回答
0

食谱:

http://docs.xamarin.com/android/recipes/Data/Files/Selecting_a_Gallery_Image

于 2012-05-18T14:29:53.920 回答
0

安卓

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

Xamarin Android

var ins = context.ContentResolver.OpenInputStream(uri);
Bitmap bitamp = BitmapFactory.DecodeStream(ins);
于 2021-06-05T10:51:37.660 回答
0
public override void OnActivityResult(int requestCode, int resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);

    Uri uri = data.Data;
}
于 2017-09-20T11:29:56.890 回答