Flutter圈子FlutterFlutter中文社区

flutter 图片引入 圆角图片 圆形图片

2019-12-25  本文已影响0人  supa同学

图片显示

1. 本地图片

/// 先将图片拷贝到项目 images 目录中,然后在 pubspec.yaml文件配置文件相对路径到 assets 
Image.asset(
  'imgsrc',
  width: 200,
  height: 200,
)
/// 加载Android平台的外置存储图片需要AndroidManifest.xml配置android.permission.READ_EXTERNAL_STORAGE权限
Image.file(
  File('imgsrc'),
  width: 200,
  height: 200,
)

2. 网络图片

*  Image.network无本地缓存
Image.network(
  'imgsrc',
  width: 200,
  height: 200,
)
FadeInImage.assetNetwork(
  placeholder: 'imgsrc1',
  image: 'imgsrc2,
  width: 200,
  height: 200
)
/// 1、将依赖框架配置到pubspec.yaml文件
dependencies:
  cached_network_image: ^0.7.0

/// 2、引入相关类
import 'package:cached_network_image/cached_network_image.dart';

/// 3、使用控件,默认自带图片淡入效果
CachedNetworkImage(
  imageUrl: 'imgsrc',
  width: 200,
  height: 200,
)

圆形头像

CircleAvatar(
  //头像半径
  radius: 60,
  //头像图片 -> NetworkImage网络图片,AssetImage项目资源包图片, FileImage本地存储图片
  backgroundImage: NetworkImage(
    'imgsrc'
  ),
)
ClipOval(
  child: Image.network(
    'imgsrc',
    width: 120,
    height: 120,
    fit: BoxFit.cover,
  ),
)
Container(
  width: 120,
  height: 120,
  decoration: BoxDecoration(
    shape: BoxShape.circle,
    image: DecorationImage(
      image: NetworkImage('imgsrc'),
      fit: BoxFit.cover
    )
  )
)

圆角图片

ClipRRect(
  borderRadius: BorderRadius.circular(8),
  child: Image.network(
    imgsrc',
    width: 120,
    height: 120
  )
)
Container(
  width: 120,
  height: 120,
  decoration: BoxDecoration(
    borderRadius: BorderRadius.circular(8),
    image: DecorationImage(
      image: NetworkImage('imgsrc')
    )
  )
)

各种形状

使用ShapeDecoration可以做出各种形状

斜切角: BeveledRectangleBorder
圆角: RoundedRectangleBorder
超椭圆: SuperellipseShape
体育场: StadiumBorder
圆形: CircleBorder

/// 斜切角形状示例
Container(
  width: 120,
  height: 120,
  decoration: ShapeDecoration(
    shape: BeveledRectangleBorder(
      borderRadius: BorderRadius.circular(16)
    ),
    image: DecorationImage(
      fit: BoxFit.cover,
      image: NetworkImage('imgsrc')
    )
  )
)
上一篇 下一篇

猜你喜欢

热点阅读