Material Design (一) 材料主題

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所示:


圖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ì)布局。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容