前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter的图片组件

Flutter的图片组件

作者头像
拉维
发布2019-08-12 16:00:53
5030
发布2019-08-12 16:00:53
举报
文章被收录于专栏:iOS小生活

加载远程图片

代码语言:javascript
复制
class HomeContent extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        child: Image.network(
          "http://pic33.nipic.com/20131007/13639685_123501617185_2.jpg",

          //图片的对齐方式
          // alignment: Alignment.bottomLeft,

          //设置图片的背景颜色,通常和 colorBlendMode 配合一起 使用,这样可以是图片颜色和背景色混合。
          // color: Colors.red,
          // colorBlendMode: BlendMode.luminosity,
          
          /**
           * fit 属性用来控制图片的拉伸和挤压,这都是根据父容器来的。
           * BoxFit.fill:全图显示,图片会被拉伸,并充满父容器。
           * BoxFit.contain:全图显示,显示原比例,可能会有空隙。
           * BoxFit.cover:显示可能拉伸,可能裁切,充满(图片要 充满整个容器,还不变形)。
           * BoxFit.fitWidth:宽度充满(横向充满),显示可能拉伸, 可能裁切。
           * BoxFit.fitHeight :高度充满(竖向充满),显示可能拉 伸,可能裁切。
           * BoxFit.scaleDown:效果和 contain 差不多,但是此属 性不允许显示超过源图片大小,可小不可大。
           */
          fit: BoxFit.scaleDown,
          
          /**
           * 平铺
           * ImageRepeat.repeat : 横向和纵向都进行重复,直到铺满整 个画布。
           * ImageRepeat.repeatX: 横向重复,纵向不重复。
           * ImageRepeat.repeatY: 纵向重复,横向不重复。
           */
          repeat: ImageRepeat.repeat,

        ),
        height: 300,
        width: 300,
        decoration: BoxDecoration(
          color: Colors.yellow
        ),
      ),
    );
  }
  
}

加载本地图片

加载本地图片分为两步:

  1. 在工程的根目录下新增images文件夹,然后在该文件夹下增加2.0x、3.0x、4.0x这三个文件夹。增加本地图片的时候,要分别在images文件夹、2.0x文件夹、3.0x文件夹、4.0x文件夹这四个文件夹下面分别倒入同一张图片所对应的不同分辨率大小的图片,我们的机器设备会根据屏幕的分辨率来确定取哪一个文件夹下的图片。如下图:
  1. 修改pubspec.yaml文件,如下:

然后在代码中使用就可以了:

代码语言:javascript
复制
class HomeContent6 extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        child: ClipOval(
          child: Image.asset(
            "images/001.jpg",
            width: 300,
            height: 300,
            fit: BoxFit.cover,
          ),
        ),
      ),
    );
  }
  
}

设置图片圆角

通过Container的 borderRadius 和 image 的结合来设置图片的圆角:

代码语言:javascript
复制
//利用container特性设置图片圆角
class HomeContent1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        height: 300,
        width: 300,
        decoration: BoxDecoration(
          color: Colors.yellow,
          // borderRadius: BorderRadius.all(
          //   Radius.circular(150),
          // ),
          borderRadius: BorderRadius.circular(150),
          image: DecorationImage(
            image: NetworkImage(
              'http://pic33.nipic.com/20131007/13639685_123501617185_2.jpg',
            ),
            fit: BoxFit.cover
          )
        ),
      ),
    );
  }
  
}

还有另外一种更简洁的设置图片圆角的方式,就是利用ClipOval组件:

代码语言:javascript
复制
//利用ClipOval设置图片圆角
class HomeContent2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        child: ClipOval(
          child: Image.network(
            "http://pic33.nipic.com/20131007/13639685_123501617185_2.jpg",
            height: 300,
            width: 300,
            fit: BoxFit.cover,
          ),
        ),
      ),
    );
  }
}

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档