Solved: 答案是更新所有 nuget 软件包并针对较新版本的 Android。现在图像按预期加载。我对此并不满意,因为我完全使用了 Xamarin 提供的代码,并且针对较新的版本已弃用了代码所依赖的一些项目。初始版本是 Xamarin.Forms v23,我更新到 V25
我有一个全新的 Xamarin 表单项目,带有一个简单的视图,我试图在其中显示图像。我已经尝试了几种显示图像的方法,但我一点运气都没有。
我在用着<image>
我也尝试过 FFImageLoader 控件。
<StackLayout Orientation="Vertical">
<ff:CachedImage Source="https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg" WidthRequest="100" HeightRequest="100" />
<Button x:Name="btn" Text="Image" Clicked="Button_Clicked" />
<Frame OutlineColor="Red">
<Image x:Name="StupidImage" Source="{Binding Thumbnail}" Aspect="Fill" HeightRequest="100" WidthRequest="100" />
</Frame>
</StackLayout>
这是目前的观点。我还将 Source 直接设置为一个值,但没有结果。
我能够获得图像的流。我能够从流中读取所有字节。我构建了一个调试可视化工具来将字节显示为图像。从来源获取图像不是问题。让图像控件显示图像是一个问题。
我尝试与视图模型绑定。当失败时,我尝试直接设置源
StupidImage.Source = ImageSource.FromStream(() => result.Stream);
我还复制了字节并尝试过
StupidImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes));
我试过了ImageSource.FromFile()
and .FromUri
。我尝试将图像作为资源添加到项目中。每次尝试都是相同的,资源被读取并且字节可用,但图像控件只是不显示它。
我想可能是尺寸问题,所以我设置了控件的尺寸。没有什么。我认为可能是分辨率问题,所以我使用了较小的图像。我尝试了几种不同质量的不同图像。
然后我放弃了图像控件,并获得了 FFImageLoading nuget 包,并为其提供了图像的直接 url。与 FFImageLoading 示例使用的示例相同。还是没有图像。
我尝试了模拟器并尝试了 2 个不同的物理设备。相同的结果。
我还尝试使用在按钮上设置图像btn.Image = "whatever.jpg"
得到相同的结果。
每次都是这样的结果。我迷路了。如何让图像显示?
EDIT:我确实让它工作了,但只能在模拟器上
<Image x:Name="StupidImage" Source="https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg" />
和同样的
StupidImage.Source = ImageSource.FromUri(new Uri("https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg"));
编辑 2 - 澄清
我的目标是允许用户从设备中选择照片,然后显示它的预览。