【问题标题】:How to Get The name of Captured Image with Camera In Xamarin Android如何在 Xamarin Android 中使用相机获取捕获图像的名称
【发布时间】:2019-04-19 06:40:16
【问题描述】:

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

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

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;
}

在调试模式下我得到这个输出。

【问题讨论】:

  • 你发生了什么问题?你没有从data.Data得到uri吗?如果是这样,我建议你创建一个新文件 uri takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,pictureUri);before StartActivityForResult
  • 图片中的内容Uri
  • 创建这样的 uri Uri pictureUri = Uri.FromFile(new File(GetExternalFilesDir(Environment.DirectoryDcim), "test.jpg"));
  • Uri.FromFile 在 Xamarin android 中找不到
  • @zubariz,你解决了这个问题吗?

标签: xamarin c#-4.0 xamarin.android


【解决方案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,它对我来说效果很好。

【讨论】:

  • 当我用相机捕获图像时,意图数据为空。我刚刚收到位图。如上 Var uri=data.Date;为空,
  • @zubairz,你需要一个额外的getImageUri 方法,然后,通过这个getImageUri 方法从你的位图中获取图像uri。请检查我的更新答案。
  • 好的,先生,让我们检查一下
  • 先生,我还有一个与此问题无关的问题..如果您允许我可以问一下吗?
  • @zubairz,随意说
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
相关资源
最近更新 更多