首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XamarinForms FFImageLoading CachedImage问题

XamarinForms FFImageLoading CachedImage问题
EN

Stack Overflow用户
提问于 2018-03-01 05:00:07
回答 2查看 3.2K关注 0票数 0

我从API中获得了一个.PNG图像文件,如下所示

代码语言:javascript
复制
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) };
}

我正在取回一个文件,并显示如下

代码语言:javascript
复制
<ffimageloading:CachedImage HeightRequest="52" Margin="13,0,16,0" Source="{Binding SourceOfReturnedCachedImage}"/>

不幸的是,这是无效的(空白)。我怎么才能让它起作用?

附加细节:如果我将它改为Image而不是CachedImage,那么它就能工作了。有趣的是,如果我指定一个URI,而不是下载一个文件,如下所示,

代码语言:javascript
复制
return new CachedImage { Source = ImageSource.FromUri('http://www.website.com/image.png')};

那么它(CachedImage)就能工作了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-01 07:41:50

因此,xamarin提供了一种查看图像的简单方法,您只需将图像的url作为图像的源/cachedimage就可以了

代码语言:javascript
复制
<ffimageloading:CachedImage HeightRequest="52" Margin="13,0,16,0" Source="{Binding ImageURL}"/>

其中ImageURL是我下载图像的URL

票数 0
EN

Stack Overflow用户

发布于 2018-03-22 14:26:51

流在每次图像加载后被释放,您必须将代码修改为:

代码语言:javascript
复制
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);
    })};
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49042904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档