获取Gallery Image Android Xamarin的路径并在System.Drawing.Bitmap(“ path”)中使用它?

时间:2019-02-28 20:00:32

标签: android xamarin

我尝试使用此代码

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            if((requestCode == m) && (resultCode==Result.Ok)&&(data !=null))
            {
                string ni = GetPathToImage(data.Data);
               /// string img = GetPathToImage(data.Data);
                System.Drawing.Bitmap imge = new System.Drawing.Bitmap(ni);

            }

并使用此权限

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

但是我得到这个错误

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'System.Drawing.Bitmap' threw an exception.

1 个答案:

答案 0 :(得分:0)

Android不使用System.Drawing.Bitmap,它有您应使用的自己的Graphics API,而不是Android.Graphics.Bitmap,因此在您的情况下将是这样的:

using Android.Provider;
using Android.Graphics;

然后在OnActivityResult方法中使用类似的方法:

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
        if((requestCode == m) && (resultCode==Result.Ok)&&(data !=null))
        {
           var  imageUri = data.Data;
           Bitmap bitmap = MediaStore.Images.Media.GetBitmap(this.ContentResolver, imageUri);
        }
    }