zoukankan      html  css  js  c++  java
  • Flutter 圆形/圆角头像图片

    图片显示

    1、本地图片

    Image.asset加载项目资源包的图片

    //先将图片拷贝到项目 images 目录中,然后在 pubspec.yaml文件配置文件相对路径到 assets 
    
    Image.asset('images/pic1.jpg'),

    Image.file加载手机内置或外置存储的图片

    //加载Android平台的外置存储图片需要AndroidManifest.xml配置android.permission.READ_EXTERNAL_STORAGE权限
    
    Image.file(
      File('/0/images/cat.jpg'),
       200,
      height: 200,
    )

    2、网络图片

    Image.network无本地缓存

    Image.network(
        'https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg',
         120,
        height: 120
    ),

    FadeInImage.assetNetwork淡入效果,无本地缓存

    FadeInImage.assetNetwork(
      placeholder: 'images/avatar.png',
      image: 'https://pic1.zhimg.com/v2-7fab628481a26f025188b095b5cfafbc.jpg',
       200,
      height: 200
    )

    CachedNetworkImage第三方控件,有本地缓存和淡入效果

    //1、将依赖框架配置到pubspec.yaml文件
    dependencies:
      cached_network_image: ^0.7.0
    
    //2、引入相关类
    import 'package:cached_network_image/cached_network_image.dart';
    
    //3、使用控件,默认自带图片淡入效果
    CachedNetworkImage(
      imageUrl: 'https://pic4.zhimg.com/v2-19dced236bdff0c47a6b7ac23ad1fbc3.jpg',
       200,
      height: 200,
    )

    圆形头像

    1、CircleAvatar

    CircleAvatar(
       //头像半径
       radius: 60,
        //头像图片
        backgroundImage: NetworkImage('https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg'),
    ),

    2、ClipOval

    ClipOval( //圆形头像
       child: new Image.network(
          'https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg',
    200.0,
    ), ),

    3、Container + BoxDecoration

    Container(
       120,
      height: 120,
      decoration: BoxDecoration(
        shape: BoxShape.circle,
        image: DecorationImage(
          image: NetworkImage('https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg'),
          fit: BoxFit.cover
        )
      )
    )

    圆角图片

    1、ClipRRect

    ClipRRect( //圆角图片
       borderRadius: BorderRadius.circular(8),
       child: Image.network(
            'https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg',
             120,
            height: 120
       ),
    ),

    2、Container + BoxDecoration

    Container(
       120,
      height: 120,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(8),
        image: DecorationImage(
          image: NetworkImage('https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg')
        )
      )
    )

    其他各种形状

    使用ShapeDecoration可以做出各种形状

    • 斜切角: BeveledRectangleBorder
    • 圆角: RoundedRectangleBorder
    • 超椭圆: SuperellipseShape
    • 体育场: StadiumBorder
    • 圆形: CircleBorder
    //斜切角形状示例
    Container(
       120,
      height: 120,
      decoration: ShapeDecoration(
        shape: BeveledRectangleBorder(
          borderRadius: BorderRadius.circular(16)
        ),
        image: DecorationImage(
          fit: BoxFit.cover,
          image: NetworkImage('https://pic2.zhimg.com/v2-639b49f2f6578eabddc458b84eb3c6a1.jpg')
        )
      )
    )

  • 相关阅读:
    极光推送
    浅谈Android的屏幕适配问题
    Git/GitHub学习第一天
    Android学习总结
    为什么现在开始写你的第一篇博客
    escape.alf.nu XSS Challenges 0-7 之一步步学XSS
    PE文件学习
    通过sqli-labs学习sql注入——基础挑战之less11-22
    通过sqli-labs学习sql注入——基础挑战之less1-10
    重学数据结构系列之——总结
  • 原文地址:https://www.cnblogs.com/joe235/p/11199042.html
Copyright © 2011-2022 走看看