Flutter Widget - 加载图片

1. 加载项目中的图片:

  • 在项目根目录中创建 images 文件夹,然后放入三张图片;
  • 在 yaml 文件中添加;
flutter:
  assets:
    - images/pic1.jpg
    - images/pic2.jpg
    - images/pic3.jpg
  • 使用
Widget renderBody() {
  return new Column(
    children: <Widget>[
      new Image.asset('images/pic1.jpg'),
      new Image.asset(
        'images/pic2.jpg',
        fit: BoxFit.cover, // 缩放方式,取值 fill contain cover fitWidth fitHeight none scaleDown
        width: 200.0,
        height: 60.0,
      ),
      new Image.asset('images/pic3.jpg'),
    ],
  );

2. 加载网络图片

Widget renderBody() {
  return new Column(
    children: <Widget>[
      new Image(
        image: new NetworkImage(
            'http://h.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=0d023672312ac65c67506e77cec29e27/9f2f070828381f30dea167bbad014c086e06f06c.jpg'),
      )
    ],
  );
}

3. 用占位符淡入图片

transparent_image: ^0.1.0

import 'package:transparent_image/transparent_image.dart';

// demo
Widget renderBody() {
  return new Column(
    children: <Widget>[
      new FadeInImage.memoryNetwork(
        placeholder: kTransparentImage,
        fadeInDuration: const Duration(seconds: 50), // 持续时间,默认 700 ms
        image: 'https://github.com/flutter/website/blob/master/_includes/code/layout/lakes/images/lake.jpg?raw=true',
      )
    ],
  );
}

4. 使用缓存图片

  • 使用 cached_network_image,除了缓存之外,cached_image_network包在加载时还支持占位符和淡入淡出图片。
cached_network_image: ^0.4.1

import 'package:cached_network_image/cached_network_image.dart';

Widget renderBody() {
  return new Center(
    child: new CachedNetworkImage(
      placeholder: new CircularProgressIndicator(),
      imageUrl:
      'https://github.com/flutter/website/blob/master/_includes/code/layout/lakes/images/lake.jpg?raw=true',
      errorWidget: new Image.asset('images/pic1.jpg'),
    ),
  );
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,259评论 19 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,031评论 3 119
  • 睡在我上铺的兄弟 ——瘦桶 星星 黑夜的野草 你越长越美丽 越长越寂寞 月亮 睡在我上铺的兄弟 你...
    瘦桶阅读 389评论 0 24
  • 死亡峡谷边界。 死亡峡谷边界往东去不远处就是北漠禁地了。但北漠禁地是一片日不落之地,而在死亡峡谷却可以照常看到日落...
    流新羽阅读 342评论 6 19
  • 我想我生来就是天性善良的人,才有幸遇上两个全世界最有趣可爱的小朋友; 我想我就是浑身充满正义的人,在一次次黑暗无边...
    小天使与她的爸爸阅读 190评论 0 0