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/11Activty の結果でこの文字列を取得しています。
これは、選択した画像へのフル パスではありません。しかし、最終的にはビットマップに変換したいと考えています。

活動実績では..

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

Bitmap bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data");

null エラーを返します。

ただし、カメラから画像をキャプチャするときにギャラリーから画像を選択する代わりに、正常に動作し、ビットマップを取得します。私が使用しているコード:

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

4 に答える 4

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;
    }
于 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
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 に答える