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'),
  width: 200,
  height: 200,
)

2、網絡圖片

Image.network無本地緩存

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

FadeInImage.assetNetwork淡入效果,無本地緩存

FadeInImage.assetNetwork(
  placeholder: 'images/avatar.png',
  image: 'https://pic1.zhimg.com/v2-7fab628481a26f025188b095b5cfafbc.jpg',
  width: 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',
  width: 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',
width: 200.0,
), ),

3、Container + BoxDecoration

Container(
  width: 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',
        width: 120,
        height: 120
   ),
),

2、Container + BoxDecoration

Container(
  width: 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(
  width: 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')
    )
  )
)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM