Google提出了全新的设计规范Material Design,扁平化的设计,加上明亮的色彩,有一种美不胜收的感觉。
Material Design翻译过来叫做“材料设计”,Material Design是多种元素组合在一起形成一个层次的效果,有主题、新的控件、动画,那么使用Material Design要注意些什么呢?下面来看看使用的注意点:
1.保证兼容性,可以兼容市场占有率高的低版本系统
下面来初步认识一下Material Design的设计规范:
1.使用Material Design需要配置与Material Design相关的主题
android:Theme.Material
android:Theme.Material.Light
android:Theme.Material.Light.DarkActionBar
app\src\main\res\values\styles.xml
<resources>
<style name="AppTheme" parent="android:Theme.Material">
<!-- 设置ActionBar的背景色 -->
<item name="android:colorPrimary">#00F</item>
<!-- 设置状态栏的背景色 -->
<item name="android:colorPrimaryDark">#50F</item>
<!-- 设置控件颜色 -->
<item name="android:colorAccent">#F00</item>
</style>
</resources>
配置后运行效果如下:
和Material Design相关主题文件的sdk目录:
sdk\platforms\android-22\data\res\values\themes_material.xml
Android5.0新加的特性依赖于android.support.v7包,v7包位于:
sdk\extras\android\support\v7
其中的appcompat、cardview、gridlayout、mediarouter、palette、preference、recyclerview就是Android5.0的新特性。
2.让视图产生阴影
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="5dp"/>
3.RecyclerView
ListView控件的升级版,不仅支持垂直还支持水平列表
LinearLayoutManager:线性布局
GridLayoutManager:网格布局
StaggeredGridLayoutManager:交错网格
定制Item动画、指定Item之间的分隔条
4.CardView
CardView控件用于实现一个立体的卡片,提供了圆角、阴影等效果。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="60dp"
android:elevation="100dp"
android:orientation="vertical"
card_view:cardBackgroundColor="#71C3DE"
card_view:cardCornerRadius="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="20dp"
android:text="CardView控件,可以设置阴影和圆角效果"/>
</android.support.v7.widget.CardView>
</RelativeLayout>
运行后效果图如下:
5.ripple_drawable资源
下来看看Android5.0带来的“水波涟漪”效果:
6.定制动画,使动画效果更酷更友好
startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
7.保证app的兼容性
现在市面上还有很多低于Android5.0系统的手机,为了保证app尽可能在更多的设备上运行,就要保证app的兼容性,兼顾比较低的Android版本的手机。
1)styles
res\values\styles.xml
res\values-v21\styles.xml 大于5.0读取values-v21
(2)layout
res\layout\activity_main.xml
res\layout-v21\activity_main.xml
(3)Support Library
Android提供Support Library是为了保证和以前的兼容性。
CardView
RecyclerView
(4)检测Android系统的版本
如果没有办法用res资源满足需求,那么只能用java代码,在java代码中也需要考虑不同的Android版本如何处理:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
// 可以使用Material Design
} else {
//低于Android5.0,不可以使用Material Design
}
这样即可让app兼容到尽可能多的Android版本。