如何在Xamarin.Forms上的FFImageLoading中重用缓存结果?

时间:2017-06-24 18:19:18

标签: xamarin xamarin.forms ffimageloading

我正在尝试加载并调整大小并在加载应用程序主数据时在后台转换图像。我需要这样做,因为有些图像太大而且我有很多,所以,我觉得在展示之前准备好所有图像会更好。

我在后台执行此代码: 从Uri加载图像:

ImageService.Instance.LoadUrl(uri, TimeSpan.FromDays(60))
            .DownSample(100, 100, false).Preload();

加载相同的图像并对其应用其他转换:

ImageService.Instance.LoadUrl(uri, TimeSpan.FromDays(60))
            .DownSample(100, 100, false).Transform(BlurredTransformHere).Preload();

我以后如何在CachedImage中重用这些缓存查询的结果?

 <forms:CachedImage
    x:Name="Blured"
    Aspect="Fill"
    CacheType="All"
    HorizontalOptions="Fill"
    Opacity="0.3"
    VerticalOptions="Fill"/>     

 <forms:CachedImage
    x:Name="Normal"
    CacheType="All"
    Aspect="AspectFit"
    HorizontalOptions="CenterAndExpand"
    VerticalOptions="CenterAndExpand"/>

我是否应该为每个CachedImage添加与查询相同的配置参数?例如使用相同的参数值添加DownsampleHeight&amp; W和BlurredTransformation?

1 个答案:

答案 0 :(得分:0)

转换不会影响Image的缓存版本,它们只会更改imageSource的呈现方式。

对于图片预加载,您可以应用DownSample,然后在CachedImage控件中使用转换。

<forms:CachedImage
    x:Name="Blured"
    Aspect="Fill"
    CacheType="All"
    HorizontalOptions="Fill"
    Opacity="0.3"
    Source="YOUR_SOURCE_URI"
    VerticalOptions="Fill">
        <forms:CachedImage.Transformations>
            <fftransformations:BlurredTransformation Radius="30"/>
        </forms:CachedImage.Transformations>
 </forms:CachedImage>