码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-06-01 11:34:49      阅读:368      评论:0      收藏:0      [点我收藏+]

标签:

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

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

标签:

原文地址:http://blog.csdn.net/smartbetter/article/details/51554118

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!