我从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)就能工作了!
发布于 2018-03-01 07:41:50
因此,xamarin提供了一种查看图像的简单方法,您只需将图像的url作为图像的源/cachedimage就可以了
<ffimageloading:CachedImage HeightRequest="52" Margin="13,0,16,0" Source="{Binding ImageURL}"/>其中ImageURL是我下载图像的URL
发布于 2018-03-22 14:26:51
流在每次图像加载后被释放,您必须将代码修改为:
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);
})};
}https://stackoverflow.com/questions/49042904
复制相似问题