首页 > 解决方案 > 使用 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 资源文件夹中?

谢谢,

汤米

标签: c#android.netxamarinxamarin.forms

解决方案


从 xamarin Essentials 文档中确保从 UI 线程运行它。

InvokeOnMainThread ( () => {
    OnSelectPhotoCommand();
});

推荐阅读