【问题标题】:How to get selected image name from gallery in xamarin android如何从xamarin android中的图库中获取选定的图像名称
【发布时间】:2019-04-18 06:42:31
【问题描述】:

如何从 xamarin android 中的图库中获取选定的图像名称。当用户单击按钮时,图像库打开并且我获取图像但我不知道如何获取图像名称。

这是当用户单击图像库打开的按钮并选择图像时的按钮单击事件

fab2.Click += (o, e) =>
            {

              Intent = new Intent(Intent.ActionPick,
              MediaStore.Images.Media.InternalContentUri);
              Intent.SetType("image/*");

              StartActivityForResult(Intent.CreateChooser(Intent,"SelectPicture"), 1 );

            };

When image is selected i get the image but ...here is i have problem .i dont know how i get the selected image name.

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
      base.OnActivityResult(requestCode, resultCode, data);
      if ((requestCode == PickImageId) && (resultCode == Result.Ok) && (data != null))
      {

        Android.Net.Uri uri = data.Data;
        string path = uri.Path;
        string filename = path.Substring(path.LastIndexOf("/") + 1);


        // String s = path(selectedImageUri);
        Bitmap bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, data.Data);
      }
    }

【问题讨论】:

    标签: c# xamarin.android


    【解决方案1】:

    修改此代码添加方法 Getpath(),它将返回所选图像的路径,您可以在其中获取所选图像的名称。

     protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
            {
              base.OnActivityResult(requestCode, resultCode, data);
              if ((requestCode == PickImageId) && (resultCode == Result.Ok) && (data != null))
              {
                string imagePath = null;
                Android.Net.Uri uri = data.Data;
                var path = GetPath(uri);
    
                string filename = path.Substring(path.LastIndexOf("/") + 1);
    
    
                // String s = path(selectedImageUri);
                Bitmap bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, data.Data);
              }
            }
    
    
     public string GetPath(Android.Net.Uri uri)
        {
          string path = null;
          String[] projection = { MediaStore.MediaColumns.Data };
          ContentResolver cr = ApplicationContext.ContentResolver;
          var metaCursor = cr.Query(uri, projection, null, null, null);
          if (metaCursor != null)
          {
            try
            {
              if (metaCursor.MoveToFirst())
              {
                path = metaCursor.GetString(0);
              }
            }
            finally
            {
              metaCursor.Close();
            }
    
          }
          return path;
        }
    

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 2014-07-09
      • 2022-07-07
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多