【Flutter】Image 組件 ( 配置本地 gif 圖片資源 | 本地資源加載 placeholder )

      網友投稿 992 2025-04-01

      文章目錄

      一、配置本地 gif 圖片資源

      二、本地資源加載 Placeholder

      三、完整代碼示例

      四、相關資源

      一、配置本地 gif 圖片資源

      配置 assets 圖片資源 :

      將 gif 圖片拷貝到 flutter 根目錄下的 images 目錄下 ;

      在 pubspec.yaml 目錄中配置 images/waiting.gif 圖片資源 ;

      flutter: assets: - images/waiting.gif

      1

      2

      3

      完整的 pubspec.yaml 配置文件 :

      name: flutter_image_widget description: A new Flutter application. version: 1.0.0+1 environment: sdk: ">=2.1.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 path_provider: ^2.0.1 transparent_image: ^2.0.0 cached_network_image: ^2.5.1 dev_dependencies: flutter_test: sdk: flutter flutter: uses-material-design: true assets: - images/sidalin.png - images/sidalin2.png - images/waiting.gif

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      二、本地資源加載 Placeholder

      Placeholder 是一個占位控件 , 在圖片還沒有就緒時 , 如從網絡獲取圖片 , 先使用 Placeholder 占據圖片組件的位置 ;

      FadeInImage.assetNetwork 創建一個漸變圖像組件 , 圖片從網絡獲取 , Placeholder 從圖片資源中獲取 ;

      代碼示例 :

      Stack( children: [ Center( // 網絡加載時顯示本地的資源圖片 child: FadeInImage.assetNetwork( // Placeholder placeholder: "images/waiting.gif", image: "https://img-blog.csdnimg.cn/20210324110914742.png", ), ) ], ),

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      運行效果 : 第一張圖片加載時顯示 GIF 圖像 ;

      顯示的網絡圖片 :

      等待 gif 圖片 :

      三、完整代碼示例

      完整代碼示例 :

      import 'package:flutter/material.dart'; import 'dart:io'; import 'package:path_provider/path_provider.dart'; import 'package:transparent_image/transparent_image.dart'; import 'package:cached_network_image/cached_network_image.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State { int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } /// SD 卡路徑 String sdPath; @override void initState() { // 獲取 SD 卡路徑 getSdPath(); } void getSdPath() async { String path = (await getExternalStorageDirectory()).path; setState(() { sdPath = path; }); } @override Widget build(BuildContext context) { print("sdPath : $sdPath"); return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: ListView( children: [ Stack( children: [ Center( // 網絡加載時顯示本地的資源圖片 child: FadeInImage.assetNetwork( // Placeholder placeholder: "images/waiting.gif", image: "https://img-blog.csdnimg.cn/20210324110914742.png", ), ) ], ), Stack( children: [ // 進度條 Center(child: CircularProgressIndicator(),), Center( // 網絡加載時漸變出現 child: FadeInImage.memoryNetwork( // Placeholder placeholder: kTransparentImage, image: "https://img-blog.csdnimg.cn/2021032321394771.png", ), ) ], ), Center( // 圖片加載完成之前顯示的是 placeholder , 加載完成后顯示網絡圖片 child: CachedNetworkImage( // 加載網絡圖片過程中顯示的內容 , 這里顯示進度條 placeholder: (context, url)=>CircularProgressIndicator(), // 網絡圖片地址 imageUrl: "https://img-blog.csdnimg.cn/20210324100419204.png", ), ), // 圖片組件 , 從網絡中加載一張圖片 Image.network( // 圖片地址 "https://img-blog.csdnimg.cn/2021032313493741.png", ), Image( image: AssetImage("images/sidalin.png"), ), //Image.asset('images/sidalin2.png', ), /// 從 SD 卡加載圖片 if(sdPath != null) Image.file( File('$sdPath/sidalin3.png'), width: 200, ), ], ) ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: Icon(Icons.add), ), // This trailing comma makes auto-formatting nicer for build methods. ); } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      【Flutter】Image 組件 ( 配置本地 gif 圖片資源 | 本地資源加載 placeholder )

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      125

      126

      127

      128

      129

      130

      131

      132

      133

      134

      135

      136

      137

      138

      139

      140

      141

      142

      pubspec.yaml 配置文件 :

      name: flutter_image_widget description: A new Flutter application. version: 1.0.0+1 environment: sdk: ">=2.1.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 path_provider: ^2.0.1 transparent_image: ^2.0.0 cached_network_image: ^2.5.1 dev_dependencies: flutter_test: sdk: flutter flutter: uses-material-design: true assets: - images/sidalin.png - images/sidalin2.png - images/waiting.gif

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      運行效果 :

      四、相關資源

      參考資料 :

      Flutter 官網 : https://flutter.dev/

      Flutter 插件- : https://pub.dev/packages

      Flutter 開發文檔 : https://flutter.cn/docs ( 強烈推薦 )

      官方 GitHub 地址 : https://github.com/flutter

      Flutter 中文社區 : https://flutter.cn/

      Flutter 實用教程 : https://flutter.cn/docs/cookbook

      Flutter CodeLab : https://codelabs.flutter-io.cn/

      Dart 中文文檔 : https://dart.cn/

      Dart 開發者官網 : https://api.dart.dev/

      Flutter 中文網 ( 非官方 , 翻譯的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/

      Flutter 相關問題 : https://flutterchina.club/faq/ ( 入門階段推薦看一遍 )

      GitHub 上的 Flutter 開源示例 : https://download.csdn.net/download/han1202012/15989510

      博客源碼下載 :

      GitHub 地址 : https://github.com/han1202012/flutter_image_widget ( 隨博客進度一直更新 , 有可能沒有本博客的源碼 )

      博客源碼快照 : https://download.csdn.net/download/han1202012/16073006 ( 本篇博客的源碼快照 , 可以找到本博客的源碼 )

      Flutter Image

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何將pdf轉成excel的教程
      下一篇:項目設計協同平臺分類(協同設計平臺系統
      相關文章
      国产亚洲?V无码?V男人的天堂| 久久亚洲精品成人无码| 久久无码av亚洲精品色午夜| 亚洲中文字幕无码mv| 亚洲性色高清完整版在线观看| 久久久久亚洲Av无码专| 2022年亚洲午夜一区二区福利| 亚洲国产香蕉碰碰人人| 亚洲视频在线一区| 精品无码一区二区三区亚洲桃色| 亚洲一区二区在线免费观看| 亚洲系列国产精品制服丝袜第| 91嫩草私人成人亚洲影院| 亚洲精品美女视频| 亚洲乱码一区av春药高潮| 亚洲1区1区3区4区产品乱码芒果| 亚洲大尺码专区影院| 亚洲国产激情在线一区| 亚洲日韩AV无码一区二区三区人| 亚洲欧洲精品成人久久曰| 豆国产96在线|亚洲| 亚洲国产成人精品女人久久久 | 亚洲国产香蕉人人爽成AV片久久| 亚洲成?v人片天堂网无码| 亚洲综合久久夜AV | 亚洲精品字幕在线观看| 亚洲国产另类久久久精品| 亚洲精品国产成人99久久| 911精品国产亚洲日本美国韩国| 亚洲电影在线免费观看| 亚洲伊人色一综合网| 亚洲中文字幕精品久久| 99亚洲精品卡2卡三卡4卡2卡| 亚洲AV日韩精品一区二区三区 | 亚洲另类少妇17p| 亚洲一区二区女搞男| 亚洲乱亚洲乱淫久久| 亚洲伊人久久大香线蕉影院| 亚洲AV女人18毛片水真多| 亚洲七七久久精品中文国产| 久久精品国产亚洲av麻|