Android Flutter:UI中你必須了解的Decoration亿鲜!


前言

  • Decoration是一個背景裝飾對象允蜈,相當于Android中的shape.xml
  • 今天,carson將全面介紹Decoration的使用蒿柳,包括其作用饶套、定義 & 使用,希望你們會喜歡垒探。
示意圖

目錄


1. 定義

一個背景裝飾對象妓蛮,相當于Android中的shape.xml


2. 作用

定制各種各樣的背景(邊框、圓角圾叼、陰影蛤克、形狀、漸變夷蚊、背景圖像)


3. 類型

Flutter Decoration的類型主要有4種:

類型1:BoxDecoration

a. 特點

實現(xiàn)邊框构挤、圓角、陰影惕鼓、形狀筋现、漸變、背景圖像

b. 屬性說明
 const BoxDecoration({
    this.color, // 底色
    this.image, // 圖片
    this.border, // 邊色
    this.borderRadius, // 圓角度
    this.boxShadow, // 陰影
    this.gradient, // 漸變
    this.backgroundBlendMode, // 混合Mode
    this.shape = BoxShape.rectangle,  // 形狀
  })
c. 使用示例
decoration: new BoxDecoration(
  border: new Border.all(color: Color(0xFFFF0000), width: 0.5), // 邊色與邊寬度
  color: Color(0xFF9E9E9E), // 底色
  borderRadius: new BorderRadius.circular((20.0)), // 圓角度
  shape: BoxShape.rectangle, // 默認值是矩形
  // shape: BoxShape.circle, // 圓形箱歧,使用圓形時不可以使用borderRadius

  // 陰影:此處采用兩層陰影說明
  boxShadow: [BoxShadow(color: Color(0x99FFFF00), 
    offset: Offset(5.0, 5.0),  // 陰影位置由offset決定
    blurRadius: 10.0, // 陰影模糊層度由blurRadius大小決定(大就更透明更擴散)
    spreadRadius: 2.0), // 陰影模糊大小由spreadRadius決定
    BoxShadow(color: Color(0x9900FF00), offset: Offset(1.0, 1.0)), BoxShadow(color: Color(0xFF0000FF))],

  // 漸變
    // 類型1:環(huán)形
      gradient: RadialGradient(colors: [Color(0xFFFFFF00), Color(0xFF00FF00), Color(0xFF00FFFF)],radius: 1, tileMode: TileMode.mirror)
    // 類型2:掃描式
    // gradient: SweepGradient(colors: [Color(0xFFFFFF00), Color(0xFF00FF00), Color(0xFF00FFFF)], startAngle: 0.0, endAngle: 1*3.14)
    // 類型3:線性
    // gradient: LinearGradient(colors: [Color(0xFFFFFF00), Color(0xFF00FF00), Color(0xFF00FFFF)], begin: FractionalOffset(1, 0), end: FractionalOffset(0, 1))
  
  // 背景圖像
  image: new DecorationImage(
        image: new AssetImage('graphics/background.png'), // 加載本地圖片夫否,還有其他加載方式,如網(wǎng)絡(luò)叫胁、文件等
        centerSlice: new Rect.fromLTRB(10.0, 20.0, 30.0, 40.0),// 設(shè)置圖片大小
        fit: BoxFit.fill // 設(shè)置填充方式
  ),
),

類型2:ShapeDecoration

a. 特點

實現(xiàn)四個邊凰慈,分別指定顏色、寬度驼鹅、底部線微谓、矩形邊色森篷、圓形邊色等

b. 屬性說明
const ShapeDecoration({
  this.color, // 底色
  this.image, // 圖片
  this.gradient, // 漸變
  this.shadows, // 陰影
  @required this.shape, // 形狀
})

此處的屬性除了shape,其余與BoxDecoration相同豺型,所以此處主要講解shape屬性

c. 具體使用
decoration: new ShapeDecoration(
  // 統(tǒng)一四邊顏色和寬度
  shape: Border.all(color: Color(0xFF00FFFF),style: BorderStyle.solid,width: 2)

  // 四個邊分別指定顏色 & 寬度仲智,當只給bottom時與UnderlineInputBorder一致效果
  // shape: Border(top: b, bottom: b, right: b, left: b)

  // 設(shè)置矩形邊色
  // shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10)), side: BorderSide(color: Color(0xFFFFFFFF), style: BorderStyle.solid, width: 2))
  
  // 設(shè)置圓形邊色
  // shape: CircleBorder(side: BorderSide(color: Color(0xFFFFFF00), style: BorderStyle.solid, width: 2))
  
  // 設(shè)置豎向橢圓邊色(類似體育場)
  // shape: StadiumBorder(side: BorderSide(width: 2, style: BorderStyle.solid, color: Color(0xFF00FFFF))
  
  // 設(shè)置角形(八邊角)邊色
  // shape: BeveledRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10)), side: BorderSide(color: Color(0xFFFFFFFF), style: BorderStyle.solid, width: 2))
),

類型3:UnderlineTabindicator

a. 特點

下劃線,可控制下劃高底 & 左右邊距

b. 屬性說明
const UnderlineTabIndicator({
  this.borderSide = const BorderSide(width: 2.0, color: Colors.white), // 控制線的長度 & 顏色
  this.insets = EdgeInsets.zero, // 控制下劃高底姻氨,左右邊距
})
c. 具體使用
decoration: new UnderlineTabIndicator(
  borderSide: BorderSide(width: 2.0, color: Colors.white), 
  insets: EdgeInsets.fromLTRB(0,0,0,10)
),

類型4:FlutterLogoDecoration

a. 特點

實現(xiàn)Flutter logo 圖片

b. 屬性構(gòu)造
const FlutterLogoDecoration({
  this.lightColor = const Color(0xFF42A5F5), // Colors.blue[400]
  this.darkColor = const Color(0xFF0D47A1), // Colors.blue[900]
  this.textColor = const Color(0xFF616161),
  this.style = FlutterLogoStyle.markOnly,
  this.margin = EdgeInsets.zero,
})

在日常開發(fā)中钓辆,基本不會用到,所以此處不作過多講解肴焊。


4. 總結(jié)

  • 本文全面介紹了Flutter Decoration的使用
  • 接下來推出的文章前联,我將繼續(xù)講解Flutter的相關(guān)知識,包括使用語法娶眷、實戰(zhàn)等似嗤,感興趣的讀者可以繼續(xù)關(guān)注我的博客哦:Carson_Ho的Android博客

請點贊!因為你們的贊同/鼓勵是我寫作的最大動力届宠!

相關(guān)文章閱讀
Android開發(fā):最全面烁落、最易懂的Android屏幕適配解決方案
Android開發(fā):史上最全的Android消息推送解決方案
Android開發(fā):最全面、最易懂的Webview詳解
Android開發(fā):JSON簡介及最全面解析方法!
Android四大組件:Service服務(wù)史上最全面解析
Android四大組件:BroadcastReceiver史上最全面解析


歡迎關(guān)注Carson_Ho的簡書豌注!

不定期分享關(guān)于安卓開發(fā)的干貨伤塌,追求短、平轧铁、快寸谜,但卻不缺深度

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末属桦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子他爸,更是在濱河造成了極大的恐慌聂宾,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诊笤,死亡現(xiàn)場離奇詭異系谐,居然都是意外死亡敬肚,警方通過查閱死者的電腦和手機宪潮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耻煤,“玉大人晾匠,你說我怎么就攤上這事茶袒。” “怎么了凉馆?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵薪寓,是天一觀的道長亡资。 經(jīng)常有香客問我,道長向叉,這世上最難降的妖魔是什么锥腻? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮母谎,結(jié)果婚禮上瘦黑,老公的妹妹穿的比我還像新娘。我一直安慰自己奇唤,他們只是感情好幸斥,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冻记,像睡著了一般睡毒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冗栗,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天演顾,我揣著相機與錄音,去河邊找鬼隅居。 笑死钠至,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的胎源。 我是一名探鬼主播棉钧,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涕蚤!你這毒婦竟也來了宪卿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤万栅,失蹤者是張志新(化名)和其女友劉穎佑钾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烦粒,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡休溶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扰她。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兽掰。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖徒役,靈堂內(nèi)的尸體忽然破棺而出孽尽,到底是詐尸還是另有隱情,我是刑警寧澤忧勿,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布泻云,位于F島的核電站艇拍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宠纯。R本人自食惡果不足惜卸夕,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婆瓜。 院中可真熱鬧快集,春花似錦、人聲如沸廉白。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猴蹂。三九已至院溺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磅轻,已是汗流浹背珍逸。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留聋溜,地道東北人谆膳。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像撮躁,于是被迫代替她去往敵國和親漱病。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348