我一直在使用Xamarin Forms,我创建了一个使用themoviedb api的简单应用,它在ListView控件中显示了一个电影列表,非常简单。我把它放了几个星期,昨天我尝试了一下,我发现Android Simulator中的图像从不显示,与物理设备相同,唯一的不同是我用VS2017创建了项目,现在我用VS2019(均为社区版),谷歌搜索,我发现一些帖子(尽管很少)指出了问题,这些问题是https图像和HttpClient配置,我检查了一下,发现一切正常
我测试了许多其他事情,例如创建具有简单图像的全新项目,尝试在同一应用程序中使用其他图像,但没有运气,我在iOS中测试了该应用程序,一切看起来都正确。\
该应用只有一页,这是它的XAML: https://github.com/olman21/xamarin-movies/blob/master/Xamarin.Movies/Xamarin.Movies/Views/SearchMoviePage.xaml
图片XAML
<Image Source="{Binding BackdropPath, Converter={StaticResource movieDbImageConverter}}"
Aspect="AspectFill"
HeightRequest="160"
Grid.Row="0"/>
movieDbImageConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var imageName = value as string;
if (imageName == null) return string.Empty;
return ImageSource.FromUri(new Uri($"{internalSettings.MovieDbImageBaseUrl}/{imageName}"));
}
这是完整的仓库:https://github.com/olman21/xamarin-movies
任何帮助将不胜感激!
答案 0 :(得分:1)
这是问题,我已经弄清楚了。
将new Uri($"{internalSettings.MovieDbImageBaseUrl}/{imageName}");
更改为
new Uri($"{internalSettings.MovieDbImageBaseUrl}{imageName}");
ex URL是https://image.tmdb.org/t/p/w500/nRXO2SnOA75OsWhNhXstHB8ZmI3.jpg
而不是https://image.tmdb.org/t/p/w500//nRXO2SnOA75OsWhNhXstHB8ZmI3.jpg
浏览器了解到,Android OS不会见多识广。