打開 pubspec.yaml 文件,找到 assets: 開頭的Key,將其注釋放開并配置正確路徑
專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)拜城免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
Image組件的構(gòu)造方法
在 Android 中,我們都知道,圖片的顯示方式有很多,資源圖片、網(wǎng)絡(luò)圖片、文件圖片等等,在 Flutter 中也有多種方式,用來加載不同形式的圖片:
Image:通過ImageProvider來加載圖片
Image.asset:用來加載本地資源圖片
Image.file:用來加載本地(File文件)圖片
Image.network:用來加載網(wǎng)絡(luò)圖片
Image.memory:用來加載Uint8List資源(byte數(shù)組)圖片
Image 的一個參數(shù)是 ImageProvider,基本上所有形式的圖片加載都是依賴它,這個類里面就是實現(xiàn)圖片加載的原理。用法如下:
加載一個本地資源圖片,和 Android 一樣,有多種分辨率的圖片可供選擇,但是沿襲的是 iOS 的圖片風(fēng)格,分為 1x,2x,3x,具體做法是在項目的根目錄下創(chuàng)建兩個文件夾,如下圖所示:
還要配置如下
在pubspec.yaml文件
加載一個本地 File 圖片,比如相冊中的圖片,用法如下
加載一個網(wǎng)絡(luò)圖片,用法如下:
有的時候我們需要像Android那樣使用一個占位圖或者圖片加載出錯時顯示某張?zhí)囟ǖ膱D片,這時候需要用到 FadeInImage 這個組件:
用來將一個 byte 數(shù)組加載成圖片,用法如下:
flutter開發(fā)中,圖片的引用是必不可少的,所以為了提高效率和精準(zhǔn)度,我們需要對不同分辨率的手機使用相對應(yīng)的切圖圖片,本章介紹如何進行 圖片分辨率適配 和 圖片批量拓展處理 。
flutter中會首先根據(jù)系統(tǒng)的devicePixelRatio(每一個邏輯像素包含多少個原始像素,可以通過MediaQueryData.devicePixelRatio來得到)來找對應(yīng)倍數(shù)的文件夾下的圖片,如果沒有對應(yīng)倍數(shù),找最接近的。
所以在flutter項目中,我們需要構(gòu)建對應(yīng)的倍數(shù)像素文件夾
之后再pubspec.yaml中,配置assets文件后就可以使用了(如使用"assets/images/jay.png",會自動適配該像素下最接近的jay圖片)。
使用flutter-img-sync插件批量化處理,具體操作如下
目前還不能處理gif、webp等格式的圖片,而且如果和上邊介紹的不同像素比適配方案一起使用的話,由于進行了精準(zhǔn)定位,所以指定圖片后就不能進行像素適配,這是目前還存在的較大問題,所以目前兩者方案只能暫時取一使用。