dart - 在 Flutter 中显示本地镜像和服务器图像(带缓存)

标签 dart flutter image-caching flutter-image

我试图在从图像库以及网络加载的图像中选取的小部件中显示图像。

CachedNetworkImage 与网络图像一起工作正常,但是当我尝试从图库传递选定的图像时,它不起作用。

CachedNetworkImage(
      imageUrl: url,
      placeholder: (context, url) => new CircularProgressIndicator(),
      errorWidget: (context, url, error) => new Icon(Icons.error),
    );

请帮我展示一下。

目标是 1.可以加载本 map 片 2.可以加载网络图片 3. 可以显示缓存的图像。

提前谢谢您。

最佳答案

您需要确定何时显示本地镜像以及何时显示来自网络的图像。如果网络图像下载后需要显示本地副本,您可以添加检查器来检查该图像文件是否存在于本地。否则,应该从网络/缓存中获取图像。您可以使用图片URL的imageId作为本 map 片的相同标识符。

var imgUrlEndpoint = 'https://picsum.photos/250?image='
var imgId = '9';
var imgFile = File('path/to/file/$imgId.jpg');

// Check if image file exists
if(imgFile.exists()){
  // Load image from storage
  Image.file(imgFile);
} else {
  // Load image from network
  CachedNetworkImage(
    imageUrl: '$imgUrlEndpoint$imgId',
    placeholder: (context, url) => CircularProgressIndicator(),
  );
}

关于dart - 在 Flutter 中显示本地镜像和服务器图像(带缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55868914/

相关文章:

android - 线圈图像缓存

flutter - Flutter BLoC:管理主要数据类型的状态

flutter - 需要帮助在 Flutter 中导入自定义图标

image - Flutter Navigation 和同时对 dispose() 的要求

flutter - 导航后打开 flutter 对话框

jquery - 如何说服浏览器从缓存中加载图像而不是从服务器获取

php - 如何强制 Drupal ImageCache 在上传时创建图像样式,而不是在第一个图像请求时?

dart - Dart 程序何时完成执行?

android - ListView.builder底部由抖动中的像素溢出

ios - 在我的项目 ios 和 android 中使用 simple_permissions 时出现问题