返回顶部
首页 > 资讯 > 移动开发 >flutter开发实战-显示本地图片网络图片及缓存目录图片
  • 555
分享到

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

flutter加载loadingAndroid经验分享 2023-10-05 12:10:57 555人浏览 薄情痞子
摘要

Flutter开发实战-显示本地图片网络图片及缓存目录图片 在最近开发中碰到了需要显示缓存目录图片,这里顺便整理一下,显示本地图片、网络图片、缓存目录图片的方法。 一、工程本地图片显示 1 在项目根目

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

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

一、工程本地图片显示

  • 1 在项目根目录下创建名为 images文件夹,也可以将images放在asserts文件夹下
  • 2.在pubspec.yaml中配置images相关的路径,并执行pub get 使配置的文件生效

在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

--结束END--

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

本文链接: https://lsjlt.com/news/423724.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作