Material Design 是专为设计适用于多个平台和设备的视觉、运动与互动效果而制定的综合指南。 Android 现在已支持 Material Design 应用。 如果要在您的 Android 应用中使用 Material Design,请遵循Material Design 规范内定义的指导方针,并使用 Android 5.0(API 级别 21)及以上版本所提供的新组件和功能。
Android 为您提供了以下元素来构建 Material Design 应用:

全新的风格主题

用于设计复杂视图的全新小工具
用于自定义阴影和动画的全新 API

有关在 Android 上实现 Material Design 的详细信息,请参阅使用 Material Design 创建应用。

材料主题

材料主题提供了新的应用样式和系统小工具,让您能够为触摸反馈以及 Activity 转换设置配色工具以及默认动画。


深色材料主题

浅色材料主题

如需了解详细信息,请参阅使用材料主题 。

列表和卡片

Android 提供了两个全新的小工具,用于显示采用 Material Design 样式和动画的卡片和列表:


全新的 RecyclerView
小工具是 ListView
的可插入版本,支持不同的布局类型,并且具有更高性能。

全新的 CardView
小工具可让您展示卡片内的重要信息,并且有统一的观感。

如需了解详细信息,请参阅创建列表和卡片。

视图阴影

除了 X 和 Y 属性之外,Android 中的视图现在还提供了 Z 属性。这一新属性用于展现视图的高度,从而确定:
阴影的大小:Z 值越高的视图投射的阴影越长。
绘制顺序:Z 值较高的视图会显示在其他视图的上方。

如果要重新播放影片,请点击设备屏幕

如需了解详细信息,请参阅定义阴影与裁剪视图。

动画

动画 API 让您可为 UI 控件中的触摸反馈、视图状态更改以及 Activity 转换创建自定义动画。
这些 API 的作用是:
使用触摸反馈动画响应视图中的触摸事件。
使用循环显示动画隐藏和显示视图。
使用自定义 Activity 转换动画切换 Activity。
使用曲线运动创建更自然的动画。
使用视图状态更改动画以动画形式呈现一个或多个视图属性的更改。
在视图状态更改期间以可绘制状态列表显示动画。

触摸反馈动画内建于数个标准视图(例如按钮)中。全新的 API让您可以自定义这些动画并将其添加至自己的自定义视图中。
如需了解详细信息,请参阅定义自定义动画。

可绘制对象

下列可绘制对象的新功能将帮助您实现 Material Design 应用:
可绘制矢量可在不影响清晰度的情况下进行缩放,非常适合单色应用内图标。
可绘制底色可让您将位图定义为 alpha 蒙板,并在运行时为其着色。
颜色提取可让您从位图图像自动提取突出色彩。

如需了解详细信息,请参阅使用可绘制内容。


使用图片

本课程将向您展示如何
为图片资源着色
从图像萃取突出颜色
创建矢量图片

您也应该阅读
Material Design 规范
Android Material Design

下列适用于图片的功能将协助您在您的应用中实现 Material Design:

  • 图片着色
  • 突出颜色萃取
  • 矢量图片

本课程将向您展示如何在您的应用中使用这些功能。

为图片资源着色

利用 Android 5.0(API 级别 21)及更高版本,您可为位图以及定义为 Alpha 蒙版的点九图着色。 您可使用颜色资源或分解为颜色资源(例如 ?android:attr/colorPrimary
)的主题属性为其着色。 通常,您只有一次机会创建这些资产并自动为其上色以符合您的主题。
您可利用 setTint()
方法为 BitmapDrawable
或 NinePatchDrawable
对象着色。您也可以利用 android:tint
以及 android:tintMode
属性设置您的布局中的着色颜色和模式。

从图像萃取突出颜色

Android 支持内容库 r21 及更高版本包括 Palette
类别,可让您从图像萃取突出颜色。此类别将萃取下列突出颜色:
鲜艳
鲜艳深色
鲜艳浅色
低调
低调深色
低调浅色

如果要萃取这些颜色,请将 Bitmap
对象传递给位于您上载图像的背景线程的 Palette.generate()
静态方法。 如果您无法使用此线程,请调用[Palette.generateAsync()](https://developer.android.com/reference/android/support/v7/graphics/Palette.html#generateAsync(android.graphics.Bitmap, android.support.v7.graphics.Palette.PaletteAsyncListener))
方法并提供一个侦听程序。
您可使用 Palette
类别(例如 Palette.getVibrantColor
)中的 getter 方法从图像检索突出颜色。
如果要在项目中使用 Palette
类别,请将下列 Gradle 依赖项添加至您的应用模块:
dependencies { ... compile 'com.android.support:palette-v7:21.0.0'}
如果要了解更多信息,请参阅Palette
类别的 API 参考文档。

创建矢量图片

[视频
Android 矢量图形

](https://www.youtube.com/watch?v=wlFVIIstKmA)在 Android 5.0(API 级别 21)及更高版本中,您可定义矢量图片,而且图片可在不损失清晰度的情况下缩放。 您只需一个资产文件即可创建一个矢量图像,而位图图像则需要为每个屏幕密度提供一个资产文件。 如果要创建一个矢量图像,请您在
XML 元素中定义形状的详情。
下列示例以心形定义一个矢量图像:

    android:height="256dp"    android:width="256dp"        android:viewportWidth="32"    android:viewportHeight="32">    

矢量图像在 Android 中以 VectorDrawable
对象表示。如果要了解更多有关 pathData
语法的信息,请参阅 SVG 路径参考。如果要了解更多有关为矢量图片属性添加动画的信息,请参阅为矢量图片添加动画。

官网:https://developer.android.com/design/material/index.html

更多相关文章

  1. android 弹出软键盘将底部视图顶起问题
  2. Android(安卓)invalidate 与postInvalidate用法
  3. Android动画设计第3弹
  4. Jetpack Compose 重磅更新!增加RecyclerView、Constriantlayout、
  5. android中src和background区别
  6. Android(安卓)5.X Activity过渡动画,以及漂亮的共享元素效果
  7. Android学习笔记:框架模式
  8. Android(安卓)ViewPager多页面滑动切换以及动画效果
  9. Android(安卓)4.0开发环境搭建和测试

随机推荐

  1. Android应用系列:仿MIUI的Toast动画效果实
  2. Android内存泄漏
  3. [置顶] android自动化测试之Benckmark
  4. Android推荐学习路线图,职业规划
  5. Android 单元测试实战(1)—— 调研与选型
  6. 你知道吗:Android为何比iOS和WP慢?
  7. 每天学习一个Android中的常用框架——1.L
  8. Android UI常用实例 如何实现欢迎界面(Spl
  9. 反编译apk文件
  10. Android实现自动更新功能