xamarin - 如何在 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;
}
解决方案
如何在 Xamarin Android 中使用相机获取捕获图像的名称
将 转换Android.Net.Uri
为实际路径并从该路径获取图像名称。
然后,您可以在以下位置获取实际路径和文件名 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 capture image in Android using camera intent,它在我这边运行良好。
推荐阅读
- amazon-web-services - 使用无服务器框架如何使用 Cloud Watch 事件记录 Amazon S3 对象级操作
- r - r 中的正则表达式在句点后添加空格(如果不存在)
- php - 为什么这在 PHP 7.2 上给我一个语法错误,但在 PHP 7.4.5 上却没有?
- laravel - Laravel 从 Livewire 到 Fotify
- r - 复制data.frame的最快方法
- java - Springboot 手动 JAR 无法正常运行
- spring-batch - Spring批量访问内部表中的数据
- python - 如何在pygame中移动一个矩形
- python - 如何从是和否答案中添加分数?
- azure - 如何在 Mac 上本地运行计时器触发的 Azure Functions?