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>

配置后运行效果如下:

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

时间: 2024-10-03 21:54:49

Android5.0美不胜收的新特性 Material Design的相关文章

有史来最大改变 Android 5.0十大新特性

有史来最大改变 Android 5.0十大新特性 2014.10.16 14:51:31 来源:腾讯数码作者:腾讯数码 ( 0 条评论 ) 距离Android系统上一次重大更新不到一年的时间,谷歌再一次从KitKat升级到了Lollipop,而两次都使用糖果来命名,营销的目的显露无 遗.当我们首次看到Android 5.0 Lollipop这个名字的时候,就已经意识到这将是Android系统有史以来变化最大的一次升级. 首先,在感官界面设计上,我们彻底迎来了Android系统的扁平化时代,新的系

c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】

引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.------------SDK2.0功能-------------2 2.1. 泛型:2 3. --------------sdk3.0  增加了以下功能..2 3.1. LINQ 3 4.  ----------sdk4

C# 6.0可能的新特性

C# 6.0可能的新特性 1.主构造函数(Primary Constructors) 主构造函数给类中的变量赋值 Before public class Point { private int x, y; public Point(int x, int y) this.x = x; this.y = y; } } After public class Point(int x, int y) { private int x, y; } 2.自动属性赋值(Auto Properties) Befor

Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结

Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系 1 2. paip.------------SDK2.0功能------------- 2 2.1. 泛型: 2 3. --------------sdk3.0  增加了以下功能.. 2 3.1. LINQ 3 4.  ----------sdk4.0 新加功能------------ 3 5. ].Net4.5的五项强大新特性 3 5.

MySQL 8.0.2复制新特性(翻译)

译者:知数堂星耀队 MySQL 8.0.2复制新特性 MySQL 8 正在变得原来越好,而且这也在我们MySQL复制研发团队引起了一阵热潮.我们一直致力于全面提升MySQL复制,通过引入新的和一些有趣的功能.此外,我们还听取了社区的建议和反馈.因此,我们很荣幸能够与你一同见证最新版本(MySQL 8.0.2)的里程碑式的发布,为此我们总结了其中的一些值得注意的变化.跟随我们下面的博客,我们将会分享这些新功能的一些见解. 我们对MySQL 组复制进行了加强,主要有以下几个方面: 不允许对离开组的成

解析Hadoop 2.3.0版本的新特性

2014年2月20日,Hadoop 2.3.0版本发布,这是apache 在2014年发布的第一个Hadoop版本,揭开了Hadoop 2014发展的序幕. 该版本引入了很多大家期待已久的特性,包括HDFS 的异构层次化存储架构.DataNode Cache,YARN的单点故障解决方案,以及MapReduce的自动化部署等.本文尝试为大家解析这些特性,并给出一些资料供大家深入了解. HDFS新特性. 2.3.0中引入了两个大的HDFS特性,分别是异构层次化存储架构和DataNode Cache.

【HANA系列】SAP HANA 1.0 SPS 11 新特性

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA 1.0 SPS 11 新特性 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 1:SQL新特性更新2:System Views新特性更新3:Smart Data Access(好像针对IBM出的)4:Multistore tables新特性 原文地址:https://www.cnbl

(数据科学学习手札73)盘点pandas 1.0.0中的新特性

本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 毫无疑问pandas已经成为基于Python的数据分析领域最重要的包,而就在最近,pandas终于迎来了1.0.0版本,对于pandas来说这是一次更新是里程碑式的,删除了很多旧版本中臃肿的功能,新增了一些崭新的特性,更加专注于高效实用的数据分析,本文就将针对pandas 1.0.0在笔者眼中比较重要的特性进行介绍,对于想要完整彻底了解新版

[Android 新特性] 有史来最大改变 Android 5.0十大新特性

距离Android系统上一次重大更新不到一年的时间,谷歌再一次从KitKat升级到了Lollipop,而两次都使用糖果来命名,营销的目的显露无 遗.当我们首次看到Android 5.0 Lollipop这个名字的时候,就已经意识到这将是Android系统有史以来变化最大的一次升级. 首先,在感官界面设计上,我们彻底迎来了Android系统的扁平化时代,新的系统不仅使用了新的配色,同时看起来也很时尚.未来我们相信包括三星的TouchWiz或LG的Optimus自定义UI都会遵循Lollipop的新