Flutter 的圖標(biāo)類(lèi),它有幾個(gè)衍生的組件:ImageIcon、IconButton 等。
創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),大同網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大同等地區(qū)。大同做網(wǎng)站價(jià)格咨詢:18982081108
Icon還可以架加載iconfont(字體圖標(biāo)),這種方式 和圖片相比有如下優(yōu)勢(shì):
使用方法比較簡(jiǎn)單
為了照顧新手小伙伴,基礎(chǔ)講解里面不會(huì)設(shè)計(jì)比較復(fù)雜的東西,后面的深入講解中再對(duì)各方面最深入解析
下一節(jié)基礎(chǔ)組件之Button
在Flutter中,我們可以使用Image控件來(lái)顯示圖片,一般來(lái)講我們的圖片資源都來(lái)源于網(wǎng)絡(luò)或者本地圖片。
Flutter中的Image也是類(lèi)似。
我們先來(lái)看看Image的構(gòu)造方法
下面我們來(lái)看看其常用的屬性
可以看到,其常用屬性跟前端中的css很像。
下面我們來(lái)簡(jiǎn)單用一用Image控件
首先是必填參數(shù)image,它接收一個(gè)ImageProvider類(lèi)型的值。ImageProvider是一個(gè)抽象類(lèi),他下面有下圖這些實(shí)現(xiàn)類(lèi),由下面這些實(shí)現(xiàn)類(lèi)可以看出,image是可以從資源,內(nèi)存,網(wǎng)絡(luò),和文件中獲取圖片。
我們先來(lái)試試加載網(wǎng)絡(luò)圖片
首先看看NetworkImage構(gòu)造方法,很簡(jiǎn)單,傳個(gè)url就可以了
如下:
嗯,就是這么簡(jiǎn)單。其他3種情況使用也是類(lèi)似的,自行看源碼即可。
實(shí)際上,F(xiàn)lutter給我們提供了擴(kuò)展方法,使用起來(lái)更加簡(jiǎn)單,通常我們直接使用提供的擴(kuò)展方法即可
如下
可以看到,他們的構(gòu)造方法基本類(lèi)似。
所以我們也可以這樣寫(xiě),跟上面的效果是一致的。
大致分為一下幾步
1.創(chuàng)建一個(gè)文件夾,用于存放圖片,如圖,我創(chuàng)建了一個(gè)imgs的文件夾,放了一張圖片
2.在pubspec.yaml中聲明資源,注意聲明的時(shí)候路徑和前面的-是有間隔的,不然的話會(huì)報(bào)#/properties/flutter/properties/assets: type: wanted [array] got -imgs/code.png
類(lèi)似的錯(cuò)誤,聲明完成后點(diǎn)擊右上方的packages get
或
下面我們?cè)賮?lái)看看其他屬性。
width,height
寬高沒(méi)什么好說(shuō)的,就是設(shè)置寬度和高度
配合color使用,用于設(shè)置顏色的混合模式。BlendMode是一個(gè)枚舉,他有很多值
詳細(xì)解析還是看官方文檔吧,值太多了,我們隨便用用
用于設(shè)置圖片的填充方式,當(dāng)圖片本身小于設(shè)置的寬高或者比父控件的寬高小時(shí),我們可以設(shè)置該屬性控制圖片的顯示。
其值的類(lèi)型是BoxFit。是個(gè)枚舉
具體含義還是直接看文檔即可
設(shè)置圖片的對(duì)齊方式,接收一個(gè)Alignment類(lèi)型的值,值如下,很好理解
為了方便看效果我們?cè)谕膺吿琢藗€(gè)Container,簡(jiǎn)單的把它理解為一個(gè)容器布局就可以了,類(lèi)似于html中的div或android中的Layout,我們給Container設(shè)置了寬高和背景顏色。
bottomLeft效果如下,其他的自行嘗試
相對(duì)于Image,ICON可以像web一樣使用字體圖標(biāo),并且可以使用矢量圖,無(wú)需擔(dān)心失真的問(wèn)題,并且體積相對(duì)較小。
我們先來(lái)看看其構(gòu)造方法
很簡(jiǎn)單,我們直接來(lái)用一用
默認(rèn)情況下,pubspec.yaml中uses-material-design的值為true.我們默認(rèn)就可以使用Material Design字體圖標(biāo)
首先查看入口函數(shù):
類(lèi)MyApp:
MyHomePage:
state:
build:
此demo頁(yè)面涉及到兩個(gè)組件:圖片和icon。在這里做一個(gè)簡(jiǎn)單的介紹,更詳細(xì)的學(xué)習(xí)請(qǐng)參考flutter官網(wǎng)和相關(guān)書(shū)籍
在flutter中,我們可以通過(guò)Image組件來(lái)加載并顯示圖片,Image的數(shù)據(jù)源可以是asset、文件、內(nèi)存以及網(wǎng)絡(luò)。
ImageProvider 是一個(gè)抽象類(lèi),主要定義了圖片數(shù)據(jù)獲取的接口 load() ,從不同的數(shù)據(jù)源獲取圖片需要實(shí)現(xiàn)不同的 ImageProvider ,如 AssetImage 是實(shí)現(xiàn)了從Asset中加載圖片的ImageProvider,而 NetworkImage 實(shí)現(xiàn)了從網(wǎng)絡(luò)加載圖片的ImageProvider。
Image也提供了一個(gè)快捷的構(gòu)造函數(shù) Image.asset 用于從asset中加載、顯示圖片:
Image也提供了一個(gè)快捷的構(gòu)造函數(shù) Image.network 用于從網(wǎng)絡(luò)加載、顯示圖片:
Flutter中,可以像web開(kāi)發(fā)一樣使用iconfont,iconfont也即"字體圖標(biāo)",它是將圖標(biāo)做成字體文件,然后通過(guò)指定不同的字符而顯示不同的圖片。
加號(hào)為圖片組件,減一為icon組件。點(diǎn)擊加號(hào),數(shù)字加1;點(diǎn)擊-1,數(shù)字減少1。
在Flutter中,并沒(méi)有統(tǒng)一地修改圖標(biāo)、應(yīng)用名稱和包名的地方,所以要在各自語(yǔ)言對(duì)應(yīng)的地方進(jìn)行修改:
寫(xiě)法與原生相同,并且可以不一致。
PS:不推薦修改包名,包名最好在項(xiàng)目開(kāi)始時(shí)定下...之后修改可能會(huì)出點(diǎn)什么小問(wèn)題...
其他方式
可以使用Xcode打開(kāi)ios文件夾下的Runner.xcworkspace項(xiàng)目,像原生項(xiàng)目一樣修改。
更新Flutter應(yīng)用程序啟動(dòng)圖標(biāo)的方式與在本機(jī)Android或iOS應(yīng)用程序中更新啟動(dòng)圖標(biāo)的方式相同。
注意: 如果您重命名.png文件,則必須在您 AndroidManifest.xml 的 application 標(biāo)簽的 android:icon 屬性中更新名稱。
在 Flutter 框架加載時(shí),F(xiàn)lutter 會(huì)使用本地平臺(tái)機(jī)制繪制啟動(dòng)頁(yè)。此啟動(dòng)頁(yè)將持續(xù)到Flutter渲染應(yīng)用程序的第一幀時(shí)。
在項(xiàng)目中找到 AndroidManifest.xml 文件,其中 android:label="demo" 就是應(yīng)用程序名稱,修改引號(hào)中的內(nèi)容即可
在項(xiàng)目中找到 mipmap-mdpi mipmap-hdpi mipmap-xhdpi mipmap-xxhdpi mipmap-xxxhdpi 文件夾,替換這些文件夾中的 ic_launcher.png 文件即可
注意:圖標(biāo)有多種尺寸的大小,是為了適配不同分辨率的手機(jī)而設(shè)計(jì)的
在項(xiàng)目中找到 Info.plist 文件,其中 CFBundleDisplayName 和 CFBundleName 下面的就是應(yīng)用程序名稱,修改內(nèi)容即可
找到項(xiàng)目中的 AppIcon.appiconset 文件夾,其中 Contents.json 是配置文件,其它的圖片文件就是圖標(biāo),替換這些圖片文件即可
注意:圖標(biāo)有多種尺寸的大小,是為了適配不同分辨率的手機(jī)而設(shè)計(jì)的
插件地址:
在項(xiàng)目中找到 pubspec.yaml 文件,添加內(nèi)容如下
插件地址:
在項(xiàng)目中找到 pubspec.yaml 文件,添加內(nèi)容如下
注意:準(zhǔn)備一張 1024x1024 的 png 圖片,取名為 icon.png 并把它放在 assets/icon 目錄中
找到 ~/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.9.2/lib/android.dart 文件修改內(nèi)容如下
注意:如果使用了鏡像地址就找到 ~flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_launcher_icons-0.9.2/lib/android.dart 文件來(lái)修改以上內(nèi)容
名稱欄目:flutter圖標(biāo),flutter圖標(biāo)庫(kù)
網(wǎng)站地址:http://jinyejixie.com/article44/dsecdhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、軟件開(kāi)發(fā)、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)