在 Xamarin Forms 应用程序中包含数千张图像

Including thousands of images in Xamarin Forms application

我工作的公司有一个 xamarin 表单项目。我有 6000 多张图片以两种方式使用:缩略图页面和全尺寸页面。我有缩略图和全尺寸图像。缩略图页面一次显示 12 个产品,但它位于轮播页面中,因此轮播中最多可以有 18 个内容页面。

我试过三种saving/accessing图片的方式:

  1. 将它们作为 bundle/android 资源包括在内。这效果最好,但需要永远构建项目,并且 android 意味着我必须使用扩展文件。
  2. 下载产品列表时包含了数据库中的二进制图像。导致应用程序在下载时随机崩溃。
  3. 正在从网上下载所有文件。这行得通,但在 Android 和 iOS 上,缩略图屏幕都变慢了,并且一半的时间在 Android.
  4. 上崩溃了

有没有人不得不做类似的事情,如果有,你决定走哪条路?不幸的是,这个应用程序必须可以离线使用,所以我需要本地图像。我有点时间紧迫,所以任何帮助将不胜感激!!

有一天我遇到了类似的问题,我知道使用标准 Image class 和如此大量的图像(没有内存缓存,没有任务队列等)是不会成功的.然后我做了CachedImage。它基本上是 Image 的 API 兼容替代品,具有高级缓存功能(和一些其他功能)。你可以试试。

记得使用:

  • 下采样功能:这样图像将被调整大小以查看大小以节省内存
  • 缓存功能(默认情况下启用,不包括 StreamImageSource 您必须为其提供自定义缓存密钥工厂)
  • 使用 FileImageSource(应用程序目录)或 StreamImageSource(例如,来自图像数据库)和自定义缓存键 https://github.com/molinch/FFImageLoading(文档见 WIKI)