文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

flutter开发实战-显示本地图片网络图片及缓存目录图片

2023-10-05 12:56

关注

flutter开发实战-显示本地图片网络图片及缓存目录图片

在最近开发中碰到了需要显示缓存目录图片,这里顺便整理一下,显示本地图片、网络图片、缓存目录图片的方法。

一、工程本地图片显示

在pubspec.yaml文件中

# The following section is specific to Flutter.flutter:  # The following line ensures that the Material Icons font is  # included with your application, so that you can use the icons in  # the material Icons class.  uses-material-design: true  assets:    - assets/images/    - assets/images/common/    - assets/images/icons/

调用本地图片显示代码

Widget _buildLoadingWidget(BuildContext context) {    return ImageHelper.wrapAssetAtImages(      "icons/ic_toast_loading.png",      width: 50.0,      height: 50.0,    );  }// ImageHelper.wrapAssetAtImagesstatic Image wrapAssetAtImages(String name,      {double? width, double? height, BoxFit? fit}) {    return Image.asset(      "assets/images/" + name,      width: width,      height: height,      fit: fit,      errorBuilder: (context, url, error) =>          imageErrorHolder(width: width, height: height),    );  }

还可以使用AssetImage及Image.asset

Image(  image: AssetImage("assets/images/icons/ic_toast_loading.png"),  width: 100.0);Image.asset("assets/images/icons/ic_toast_loading.png",  width: 100.0);

二、显示网络图片

网络图片显示,使用NetworkImage 可以加载网络图片

Image(  image: NetworkImage(      "imageUrl"),  width: 100.0,)

使用Image.network

Image.network(  "https://avatars2.githubusercontent.com/u/20411648?s=460&v=4",  width: 100.0,)

使用cached_network_image插件实现加载图片

// 处理网络图片的url  static Widget imageNetwork(      {required String imageUrl,      double? width,      double? height,      BoxFit? fit,      Widget? placeholder,      Widget? errorHolder}) {    double? cacheWidth;    if (width != null) {      cacheWidth = width * 2.0;    }    double? cacheHeight;    if (height != null) {      cacheHeight = height * 2.0;    }    if (!(imageUrl.isNotEmpty && imageUrl.startsWith("http"))) {      return Container();    }    String aCropImageUrl = ImageHelper.formatImageUrl(        imageUrl: imageUrl, width: cacheWidth, height: cacheHeight);    return CachedNetworkImage(      maxWidthDiskCache: cacheWidth?.round(),      maxHeightDiskCache: cacheHeight?.round(),      imageUrl: aCropImageUrl,      fit: fit,      width: width,      height: height,      placeholder: (context, url) => (placeholder ?? Container()),      errorWidget: (context, url, error) =>          (errorHolder ?? imageErrorHolder(width: width, height: height)),    );  }  static Widget imageErrorHolder({double? width, double? height}) {    return Container(      width: width,      height: height,    );  }  static Widget placeHolder({double? width, double? height}) {    return SizedBox(        width: width,        height: height,        child: CupertinoActivityIndicator(radius: min(10.0, width! / 3)));  }

三、加载缓存目录图片

当我们将图片保存到Document、Cache目录下,需要将其显示出来,知道的ImagePath,可以使用File(ImagePath)将图片显示出来。

String? imagePath = picArg!['imagePath'];      if (imagePath != null) {        return Image.file(          File(imagePath!),          width: widget.width,          height: widget.height,          fit: BoxFit.cover,        );      }

当然也可以实现ImageProvider来处理显示图片问题

四、小结

flutter开发实战-显示本地图片网络图片及缓存目录图片。显示本地图片、网络图片、缓存目录图片的几种方法

学习记录,每天不停进步。

来源地址:https://blog.csdn.net/gloryFlow/article/details/131962281

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯