Android L Material Design简介

Android L Material Design

free 2014-7-6

简介:

最近Goolge发布了Android L的sdk及说明文档,这次发布的Android L系统主要有四个方面的较大更新:

1) 全新的UI设计规范(Material Design)

这是谷歌为了解决碎片化问题的又一重要举措,将统一包括手机、 平板、笔记本以及网页端的设计风格。谷歌称:“Material Design是美丽和大胆的,因为干净的排版和布局简单且容易理解。”

2) 新的虚拟机ART取代Dalvik

在Android L系统中,google使用ART (Android Runtime ) 虚拟机替换了之前一直默认使用的Dalvik虚拟机。虽然ART理论上和Dalvik保持兼容,但以防万一我们的app最好还是要在ART上全面测试一遍。

3) 增强通知栏(Enhanced Notifications)

这个增强体现在app可以控制通知出现的位置和外观,也不影响用户操作屏幕,类似于android的浮窗效果。

4) 提升资源利用效率(Increased Efficiency)

Google提供新的资源访问控制方法,进一步提高资源访问效率。

对于App开发而言,可见的是1)和3),另外两点都是系统性能提升的,不涉及开发工作。本文主要对第1)点Material Design进行简单分析。

1. 环境配置

如果想开发或测试Android L的新特性,必须先下载Android L的SDK。那么你需要最新的SDK Tools、Platform-tools和Build-tools,所以先升级你的ADT(最新Rev. 23),然后就就可以看到Android L SDK的下载了。

clip_image002

下载完成SDK后创建虚拟设备Nexus 5或Nexus 7都可以,Target设置为Android L就,然后就可以测试Android L的新特性了。

另外需要注意,Android L的SDK需要java7及以上版本的支持。

2. 新的UI设计规范(Material Design

Material Design不像Android过去采用的Holo风格那样深沉,增加或修改了阴影动画功能,使其更加跳动和富有活力。在你的应用中可以按照material design 规范中定义的准则以及使用新的组件和功能。

2.1新主题(Material Theme

Android L新定义了三种Theme,如下

@android:style/Theme.Material (dark version)

@android:style/Theme.Material.Light (light version)

@android:style/Theme.Material.Light.DarkActionBar

clip_image004clip_image006

Material Theme最大的特点是可以配置状态栏和工具栏的色彩,这样可以使色调统一。

<resources>
<style name="AppTheme" parent="android:Theme.Material">
<!--   Actionbar的颜色 -->
<item name="android:colorPrimary">@color/primary</item>
<!-- 状态栏和工具条的颜色 -->
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<!--   theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@color/accent</item>
</style>
</resources>

clip_image008

当然,改变状态栏和工具栏的颜色也可以通过API来实现,Window.setStatusBarColor().

2.2新Widget

1)RecyclerView

RecyclerView是增强的ListView,它在滚动效率和动态改变item性能方面有较大提升。RecyclerView将 layout 抽象成了一个LayoutManager,RecylerView 不负责子 View 的布局, 我们可以自定义LayoutManager来实现不同的布局效果,Android L目前只提供了LinearLayoutManager。 LinearLayoutManager 可以指定方向,默认是垂直, 可以指定水平, 这样就轻松实现了水平的 ListView。

RecyclerView 的另一个特点是标准化了 ViewHolder, 编写 Adapter 面向的是 ViewHoder 而不在是View 了, 复用的逻辑被封装了, 写起来更加简单。下图是RecyclerView的框架图:

clip_image010

官方解释及例子参考:http://developer.android.com/preview/material/ui-widgets.html

2)CardView

CardView比较简单,它继承FrameLayout,实现了圆角,用card_view:cardCornerRadius属性指定圆角的半径,另外它也有Android L共有的阴影属性,可以设置阴影。下图是卡片的一个例子:

clip_image012

2.3 新增视图阴影属性(View Shadows

除了X、Y属性,Android L 开发者预览版的视图提供了Z属性,Z属性表示视图的仰角,它决定了:

1)阴影大小,高Z值的视图投射更大的阴影

2)绘制顺序,高Z值的视图显示在最上面

为了使用阴影,在布局中可以使用android:elevation 属性来指定view的Z值,在代码中可以通过View.setElevation方法指定View的Z值。

2.4 新的动画API

Android L 开发者预览版提供新的动画API,你可以为UI控件的触摸响应、视图的状态、Activity的切换创建新的自定义动画。

新的动画API可以让你做到:

1)使用触摸反馈动画响应view的触摸事件(Touch feedback animations)

2)使用Reveal effect animations显示隐藏View

3)Activity transition animations切换Activity

4)创建更加自然的曲线运动动画

5)一个或多个视图属性变化动画(state change animations)

6)视图状态变化动画(state list drawables)

Touch feedback animations 内置在android的标准控件内,例如 buttons。新的APIs可以让你自定义动画,并且让动画加入到自定义的view中。

参考:

http://developer.android.com/preview/index.html

posted on 2014-07-09 12:00  free~  阅读(651)  评论(0编辑  收藏  举报