Material Design (一) 材料主题

Material Design 是什么?

Material Design,材料设计语言。是Google推出的一种设计语言,为手机、平板等多个平台和设备提供外观一致、动画流畅的视觉设计效果。界面上所有的View可以看成是由一些三维空间内一块有一定厚度的、大小可以缩放的、平面形状可变的、与界面平行放置的、不可穿透的"材料板"组成的,不同的Material之间不能占据空间中的同一个点。 我们可以给控件设置一个高度值,这个高度值会影响其阴影的大小和显示顺序,不同的控件都有一个默认的高度值。

有些Material Design功能(例如材料主题和定制操作行为转换)仅在Android5.0(API级别21)及更高的版本中提供。可以通过一些设计在支持Material Design的设备上使用这些功能,同时能够兼容早期版本的Android设备。如提供备用的样式和布局、使用内容支持库、检查系统版本。详细内容可以到官网查看https://developer.android.google.cn/training/material/compatibility.html,在后面的学习中用到的时候也会给出详细讲解。

用材料主题定制自己APP的主题风格

我们可以根据需要制定适合自己APP主题风格。通过使用配色工具为系统状态栏(即设备顶部显示电量和系统时间等信息的部分)和工具栏及其他小组件着色,材料主题也提供了组件触摸反馈动画和操作行为转换动画。

材料主题定义有:
@android:style/Theme.Material(深色版本)
@android:style/Theme.Material.Light(浅色版本)
@android:style/Theme.Material.Light.DarkActionBar

要应用材料主题的风格需要指定一个从android:Theme.Material继承的style,为了兼容低版本的的设备我们会使用AppCompat的主题风格
Theme.AppCompat 为深色主题,设置这个主题时ToolBar上面文字图标默认颜色为浅色(白色)
Theme.AppCompat.Light为浅色主题,设置这个主题时ToolaBar上面文字图标的颜色默认为深色(黑色)。

定制配色

在AndroidStudio中新建一个空项目,在/app/src/main/res/values/style.xml文件中定义一个Material风格的主题样式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节点或activity节点中的theme属性设置定义的主题,如:

<?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三个属性的设置显示效果,如图1-1所示:


图1-1
  • colorPrimary: APP主要颜色,一般用于ActionBar,ToolBar的背景色设置。
  • colorPrimaryDark:比colorPrimary要深一些的颜色,如果状态栏颜色android:statusBarColor 没有设置固定值将默认为colorPrimaryDark的颜色。
  • colorAccent: 强调色,用于如FloatingActionButton小控件上起强调突出作用的色彩。

这三个颜色值可以根据自己APP的需求自定义。

下一篇学习Material Desing风格的设计布局

材料主题的应用很简单,新建一个空项目,Android Studio已经为我们建立好基本的东西,一个继承AppCompatActivity的MainActivity,应用AppCompat兼容包下的主题style。Android Studio 还提供了一些Material风格的模板Activity可以直接应用。从下一篇文章我们将开始学习一些Material Design风格的设计布局。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容