兼容性
虽然Material Design新增了许多新特性,但是并不是所有新内容对对下保持了兼容。
使用v7包
v7 support libraries r21 及更高版本包含了以下Material Design特性:
- 使用Theme.AppCompat主题包含调色板主体属性,可以对应用的主题做统一的配色,但是不包括状态栏和底部操作栏
- RecyclerView和CardView被独立出来,只要引入jar包,即可适配7以上的所有版本。
- Palette类用于从图片提取主色调
系统组件
Theme.AppCompat主题中提供了这些组件的Material Design style:
- EditText
- Spinner
- CheckBox
- RadioButton
- SwitchCompat
- CheckedTextView
- Color Palette
创建多个value和layout
针对Android L我们可以创建value-v21指定Material Design主题,而在其他value中指定Theme.AppCompat。layout布局也可以采用该方式,在Android L中使用系统控件,在低版本中使用我们自定义的控件活着第三方包来达到该效果。
注意版本检查
以下特性只在Android 5.0 (API level 21) 及以上版本中可用:
- 转场动画
- 触摸反馈
- 圆形展示动画
- 路径动画
- 矢量图
- tint染色
所以在代码中遇上使用这些api的地方需要进行版本判断:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 使用新特性
} else {
// 用其他替代方式
}
ps:http://www.cnblogs.com/McCa/p/4467691.html
第三方支持库
RippleDrawable
提供触摸反馈特效,即5.0的button按压下的水波纹效果。
- https://github.com/03uk/RippleDrawable
- https://github.com/siriscac/RippleView
- https://github.com/balysv/material-ripple
状态动画
https://github.com/NghiaTranUIT/Responsive-Interaction-Control
Material Design风格的对话框
https://github.com/lewisjdeane/L-Dialogs
Material Design风格兼容包
提供了不少控件特效 https://github.com/navasmdc/MaterialDesignLibrary
SystemBarTint
支持修改状态栏和底部操作栏 https://github.com/jgilfelt/SystemBarTint