簡介
在iOS中降狠,本地圖片可以放在Assets.xcassets中進(jìn)行管理。這個做得非常好庇楞,可以簡單理解為一個文件夾榜配,放哪里都可以,非常方便吕晌。
但是蛋褥,在Flutter中,本地圖片的管理要麻煩很多睛驳。
集中式管理
Flutter中本地圖片需要集中在一個地方壁拉,統(tǒng)一管理出革。所以杂曲,在工程根目錄下新建一個asset目錄,統(tǒng)一存放資源滔金。文件也跟圖片一樣屎蜓,是一種資源痘昌。
由于屏幕適應(yīng),分為1x炬转,2x辆苔,3x圖,所以添加兩個子文件夾扼劈,放2倍驻啤,3倍圖。文件夾的名稱固定為2.0x荐吵,3.0x
藍(lán)湖下載設(shè)置
- 選擇Android平臺骑冗,選中mdpi(1x), xhdpi(2x), xxhdpi(3x)三種規(guī)格赊瞬,下載圖片
企業(yè)微信截圖_a09062f8-6fa5-4f39-8181-a1a33d3126d4.png
- 下載完之后,圖片名字改成一樣的
企業(yè)微信截圖_d84583d0-4729-4abf-a392-f91045c490d7.png
放置圖片
將對應(yīng)倍數(shù)的圖片放入對應(yīng)的文件夾中贼涩。由于名字一樣巧涧,所以要注意放置的位置,不要出錯遥倦。
企業(yè)微信截圖_136a7568-8ec6-43b1-b346-a95ee12cd2a2.png
pubspec.yaml聲明
- 可以手動添加谤绳,集中式的也可以,比如像這樣
assets:
- assets/images/
- 也可以用插件flutter-img-sync(推薦)
企業(yè)微信截圖_6412509f-960e-4421-9c59-08407b80a3e4.png
- 資源文件r.dart
這個是插件flutter-img-sync自動生成的袒哥,不需要管缩筛,在lib根目錄下
將字符串轉(zhuǎn)換為類的靜態(tài)變量,用起來比較方便
企業(yè)微信截圖_b3220807-3745-4bb6-b0e4-efb1aaf4d53f.png
// ignore_for_file: prefer_const_declarations
class R {
/// ![](http://127.0.0.1:9527/assets/images/star_off.png)
static final String assetsImagesStarOff = 'assets/images/star_off.png';
}
使用
按照安卓的習(xí)慣就可以了堡称。圖片資源不用劃分模塊歪脏,不用分級,全部放在一個級別粮呢,通過全局變量訪問就好了婿失。
Image.asset(R.assetsImagesStarOff),
企業(yè)微信截圖_b40b7486-9152-4110-a1dc-a549992537b0.png
可選
插件:“Flutter GetX Generator - 貓哥”
可以有3x圖生成1x和2x圖,作用有點(diǎn)啄寡,但是感覺不是很大豪硅。所有圖片都是可以從藍(lán)湖下載的,不需要多此一舉挺物。
將字符串轉(zhuǎn)化為全局變量的事情也做了懒浮,只不過是txt文件,不能直接用识藤,有點(diǎn)遺憾砚著。
不過無論怎么說,也算有特色痴昧,有興趣的話可以嘗試一下稽穆。