c# - 使用 XF ImagePicker 显示图像而不将图像放入资源中
问题描述
在 Xamarin.Forms 预发布版中,他们发布了一个媒体选择器:https ://docs.microsoft.com/en-us/xamarin/essentials/media-picker?tabs=android
这显然是一个很好的补充,而且您不必使用任何 3rd 方库这一事实很棒!
我正在创建一个事件管理应用程序 - 在应用程序中,用户可以为事件选择图像并能够看到它。
这是我的代码:
public async void OnSelectPhotoCommand()
{
var photo = await MediaPicker.PickPhotoAsync();
await LoadPhotoAsync(photo);
}
async Task LoadPhotoAsync(FileResult photo)
{
var newFile = Path.Combine(FileSystem.CacheDirectory, photo.FileName);
using (var stream = await photo.OpenReadAsync())
using (var newStream = File.OpenWrite(newFile)) { await stream.CopyToAsync(newStream); }
ImagePath = newFile;
}
问题是图像没有显示或出现 - 我试图修改我的代码并调试它,但我无法找到问题的根源。
我希望用户能够真正看到图像 - 但我不确定如何使用 MediaPicker 而不将其放入 Android 资源文件夹中?
谢谢,
汤米
解决方案
从 xamarin Essentials 文档中确保从 UI 线程运行它。
InvokeOnMainThread ( () => {
OnSelectPhotoCommand();
});
推荐阅读
- javascript - 从承诺内部在外部范围内设置变量
- python - 如何在不使用上层元素的“键”的情况下将嵌套的json元素清除到python中的最上面的键
- java - 在匿名类外部包中访问类的成员函数
- jquery - 删除前检查
- hyperledger-fabric - 作曲家 - 错误:8 RESOURCE_EXHAUSTED “网络过载”
- java - 无法在 Intellij 中解析符号 Apache
- c# - 如何连接到 Oracle 数据库
- python - 如何使汽车在背景顶部可见?
- laravel - Laravel 路由和 Vue 路由冲突
- python - 在文件名中使用正斜杠重命名文件(python)