如何在不绑定实际大小的情况下压缩列表视图中的在线图像?

时间:2019-01-29 06:37:39

标签: image listview xamarin.forms

在xamarin表单应用程序中与列表视图绑定之前,如何压缩在线图像。实际上,在线图片的大小非常大,例如5MB,6MB, 连续查看9或10张图像后,我的App崩溃了。 有帮助吗????

2 个答案:

答案 0 :(得分:1)

您应该使用FFImageLoading,它具有一种调整大小以适合视图大小的方法

  

DownsampleToViewSize(布尔型,默认值:false)

     

如果设置为true,图像将调整为图像视图尺寸。请注意:   这不适用于某些布局(例如,没有   指定了RequestWidth / RequestWidthHeight,在LayoutOptions.Fill中填入   具体情况等)。选择尺寸的算法:第一   选中了View.Width / View.Height,如果它为⇐0,则会退回到:   View.RequestWidth / View.RequestHeight,如果为⇐0,则会退回到   使用DownsampleWidth / DownsampleHeight属性。这不是最好的   未定义初始尺寸的图像视图的选项。为此你   应该使用DownsampleWidth或DownsampleHeight属性并设置   手动下采样。<​​/ p>

一个例子:

<ffimageloading:CachedImage HorizontalOptions="Center" VerticalOptions="Center"
            WidthRequest="300" HeightRequest="300"
            DownsampleToViewSize="true"
            Source = "http://loremflickr.com/600/600/nature?filename=simple.jpg">
        </ffimageloading:CachedImage>

您可以检查他们的official documentation

答案 1 :(得分:0)

您可以为每个图像使用缩略图来解决此问题。保存图像时创建缩略图。在列表视图中加载图像时,请在缩略图和详细视图中打开实际图像。这是处理这种情况的正确方法。

如果您使用Azure Blob存储来存储图像,则可以编写一个函数,该函数将在上载图像时触发,它将创建图像的缩略图。