Material Design 是什么?
Material Design,材料設(shè)計(jì)語言。是Google推出的一種設(shè)計(jì)語言,為手機(jī)、平板等多個(gè)平臺(tái)和設(shè)備提供外觀一致、動(dòng)畫流暢的視覺設(shè)計(jì)效果。界面上所有的View可以看成是由一些三維空間內(nèi)一塊有一定厚度的、大小可以縮放的、平面形狀可變的、與界面平行放置的、不可穿透的"材料板"組成的,不同的Material之間不能占據(jù)空間中的同一個(gè)點(diǎn)。 我們可以給控件設(shè)置一個(gè)高度值,這個(gè)高度值會(huì)影響其陰影的大小和顯示順序,不同的控件都有一個(gè)默認(rèn)的高度值。
有些Material Design功能(例如材料主題和定制操作行為轉(zhuǎn)換)僅在Android5.0(API級(jí)別21)及更高的版本中提供??梢酝ㄟ^一些設(shè)計(jì)在支持Material Design的設(shè)備上使用這些功能,同時(shí)能夠兼容早期版本的Android設(shè)備。如提供備用的樣式和布局、使用內(nèi)容支持庫、檢查系統(tǒng)版本。詳細(xì)內(nèi)容可以到官網(wǎng)查看https://developer.android.google.cn/training/material/compatibility.html,在后面的學(xué)習(xí)中用到的時(shí)候也會(huì)給出詳細(xì)講解。
用材料主題定制自己APP的主題風(fēng)格
我們可以根據(jù)需要制定適合自己APP主題風(fēng)格。通過使用配色工具為系統(tǒng)狀態(tài)欄(即設(shè)備頂部顯示電量和系統(tǒng)時(shí)間等信息的部分)和工具欄及其他小組件著色,材料主題也提供了組件觸摸反饋動(dòng)畫和操作行為轉(zhuǎn)換動(dòng)畫。
材料主題定義有:
@android:style/Theme.Material(深色版本)
@android:style/Theme.Material.Light(淺色版本)
@android:style/Theme.Material.Light.DarkActionBar
要應(yīng)用材料主題的風(fēng)格需要指定一個(gè)從android:Theme.Material繼承的style,為了兼容低版本的的設(shè)備我們會(huì)使用AppCompat的主題風(fēng)格
Theme.AppCompat 為深色主題,設(shè)置這個(gè)主題時(shí)ToolBar上面文字圖標(biāo)默認(rèn)顏色為淺色(白色)
Theme.AppCompat.Light為淺色主題,設(shè)置這個(gè)主題時(shí)ToolaBar上面文字圖標(biāo)的顏色默認(rèn)為深色(黑色)。
定制配色
在AndroidStudio中新建一個(gè)空項(xiàng)目,在/app/src/main/res/values/style.xml文件中定義一個(gè)Material風(fēng)格的主題樣式AppTheme,如:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
在/app/src/main/AndroidManifest.xml文件中的 application節(jié)點(diǎn)或activity節(jié)點(diǎn)中的theme屬性設(shè)置定義的主題,如:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.enid.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
這里來看看colorPrimary,colorPrimaryDark,colorAccent三個(gè)屬性的設(shè)置顯示效果,如圖1-1所示:

- colorPrimary: APP主要顏色,一般用于ActionBar,ToolBar的背景色設(shè)置。
- colorPrimaryDark:比colorPrimary要深一些的顏色,如果狀態(tài)欄顏色android:statusBarColor 沒有設(shè)置固定值將默認(rèn)為colorPrimaryDark的顏色。
- colorAccent: 強(qiáng)調(diào)色,用于如FloatingActionButton小控件上起強(qiáng)調(diào)突出作用的色彩。
這三個(gè)顏色值可以根據(jù)自己APP的需求自定義。
下一篇學(xué)習(xí)Material Desing風(fēng)格的設(shè)計(jì)布局
材料主題的應(yīng)用很簡(jiǎn)單,新建一個(gè)空項(xiàng)目,Android Studio已經(jīng)為我們建立好基本的東西,一個(gè)繼承AppCompatActivity的MainActivity,應(yīng)用AppCompat兼容包下的主題style。Android Studio 還提供了一些Material風(fēng)格的模板Activity可以直接應(yīng)用。從下一篇文章我們將開始學(xué)習(xí)一些Material Design風(fēng)格的設(shè)計(jì)布局。