Android5.0美不胜收的新特性 Material Design

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>

配置后运行效果如下:

Android5.0美不胜收的新特性 Material Design_第1张图片

和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>

运行后效果图如下:

Android5.0美不胜收的新特性 Material Design_第2张图片

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版本。

你可能感兴趣的:(android,设计,设计规范,design,material)