0

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

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}"/>

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

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

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

然后它 ( CachedImage) 工作!

4

2 回答 2

1

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

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

    HttpClient client = new HttpClient();

    return new CachedImage { Source = ImageSource.FromStream(() => {
        return await client.GetStreamAsync(URL);
    })};
}
于 2018-03-22T14:26:51.997 回答
0

所以xamarin提供了一种简单的查看图片的方法,你可以把图片的url作为image/cachedimage的来源

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

ImageURL 是我从中下载图像的 URL

于 2018-03-01T07:41:50.933 回答