XamarinForms FFImageLoading CachedImage问题

时间:2018-03-01 05:00:07

标签: xamarin xamarin.forms ffimageloading

我从这样的API中获取.PNG图像文件

public static async Task<CachedImage> GetImage(string UserID)
{
    var URL = "assumeThisUrlPointsToServer"

    HttpClient client = new HttpClient();

    Stream stream = await client.GetStreamAsync(URL);

    return new CachedImage { Source = ImageSource.FromStream(() => stream) };
}

我正在收到一个文件,我正在显示它

<ffimageloading:CachedImage HeightRequest="52" Margin="13,0,16,0" Source="{Binding SourceOfReturnedCachedImage}"/>

不幸的是,这不起作用(空白)。我如何让它工作?

其他详细信息:如果我将其更改为Image而不是CachedImage,那么它可以正常工作。 现在有趣的是,如果我指定一个URI而不是下载文件,就像这样,

return new CachedImage { Source = ImageSource.FromUri('http://www.website.com/image.png')};

然后它(CachedImage)有效!

2 个答案:

答案 0 :(得分:1)

在每次加载图像后都会处理流,您必须将代码修改为:

public static async Task GetImage(string UserID) {     var URL =“assumeThisUrlPointsToServer”

HttpClient client = new HttpClient();

return new CachedImage { Source = ImageSource.FromStream(() => {
    return await client.GetStreamAsync(URL);
}) };

}

答案 1 :(得分:0)

所以xamarin提供了一种查看图像的简单方法,你可以只将图像的url作为image / cachedimage的源码,所以

<ffimageloading:CachedImage HeightRequest="52" Margin="13,0,16,0" Source="{Binding ImageURL}"/>

ImageURL是我从

下载图片的网址