【问题标题】:XamarinForms FFImageLoading CachedImage issueXamarinForms FFImageLoading CachedImage 问题
【发布时间】:2020-05-22 21:20:03
【问题描述】:

我从这样的 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) 工作!

【问题讨论】:

标签: xamarin xamarin.forms ffimageloading


【解决方案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);
    })};
}

【讨论】:

    【解决方案2】:

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

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

    ImageURL 是我从中下载图片的 URL

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多