如何在Xamarin Android中使用相机获取捕获图像的名称

时间:2019-04-19 06:40:16

标签: xamarin c#-4.0 xamarin.android

我想使用相机获取捕获图像的名称。当用户单击按钮时,相机打开正常,但是我想要获取当前捕获图像的名称。

这是用户单击按钮然后打开相机时的按钮单击事件。

fab3.Click += (o, e) =>
            {
              Intent intent = new Intent(MediaStore.ActionImageCapture);
              StartActivityForResult(intent, 0);
              CloseFabMenu();

            };

这是我要读取捕获图像的名称。

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

        switch (requestCode)
        {
          case 0:
            if (resultCode == Result.Ok)
            {
              Bitmap bitmap = (Bitmap)data.Extras.Get("data");


            }

            break;
}

在调试模式下,我获取此输出。 enter image description here

1 个答案:

答案 0 :(得分:1)

  

如何在Xamarin Android中使用相机获取捕获图像的名称

Convert the Android.Net.Uri to actual pathget the image name from that path

然后,您可以在OnActivityResult中获得实际的路径和文件名:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);
    if (requestCode == 0)
    {
        var uri = data.Data;
        string path = GetActualPathFromFile(uri);
        System.Diagnostics.Debug.WriteLine("Image path == " + path);
        string fileName = Path.GetFileName(path);
    }
}

更新:

您可以参考Aamirkhan的回答Getting path of captured image in Android using camera intent,对我而言效果很好。