Xamarin表单:远程图像无法在Android上加载

时间:2019-10-20 16:34:03

标签: c# android xamarin xamarin.forms

我一直在使用Xamarin Forms,我创建了一个使用themoviedb api的简单应用,它在ListView控件中显示了一个电影列表,非常简单。我把它放了几个星期,昨天我尝试了一下,我发现Android Simulator中的图像从不显示,与物理设备相同,唯一的不同是我用VS2017创建了项目,现在我用VS2019(均为社区版),谷歌搜索,我发现一些帖子(尽管很少)指出了问题,这些问题是https图像和HttpClient配置,我检查了一下,发现一切正常enter image description here

我测试了许多其他事情,例如创建具有简单图像的全新项目,尝试在同一应用程序中使用其他图像,但没有运气,我在iOS中测试了该应用程序,一切看起来都正确。\

enter image description here

该应用只有一页,这是它的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

任何帮助将不胜感激!

1 个答案:

答案 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不会见多识广。