Android5.0中Material Design的新特性

Material Design简介

Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出内容。

Material Design对排版、材质、配色、光效、间距、文字大小、交互方式、动画轨迹都做出了建议,以帮助设计者设计出符合Material Design风格的应用。

Material Design设计语言鼓励大家使用充满活力的鲜艳色彩,并在同一界面建议使用三种色调,并保障有一个强色调,强色一般处于处于视图最底层,例如状态栏或者actionbar。通过强色调形成鲜明的对比,更容易突出内容的重要性。对于文字色彩的取值,Material Design建议在浅色背景上采用黑色,在深色背景上采用白色。重要信息和标题采用87%透明度,次要文字采用54%透明度,而更次要的说明文字可以采用26%的透明度。对于想特别突出或者可点击的文字,建议使用强色调。不同层级的视图,可以通过阴影来凸显。对于带有操作且内容突出的区域,可以使用cardview进行隔离,对于内容不太重要或者操作比较单一的区域,可以使用分割线进行隔离。

最近项目中需要用到Material Design,整理了下面几个常用的控件,以便记忆。

一、Snackbar

1.作用:与Toast类似,但是可以点击监听;

2.使用:

(1)Snackbar调用静态类make(),传入三个参数:View父组件,文本,显示时间;

(2)Snackbar调用setAction(),传入两个参数:文本,点击监听事件实现OnClickListener接口;

(3)显示show()与隐藏dismiss();

二、TextInputLayout

1.作用:包裹在EditText外边,可以将文本在EditText上方提示,同时可以设置错误提示;

2.使用:

(1)TextInputLayout对象调用setErrorEnable(),传入boolean类型参数表示是否显示错误信息;

(2)TextInputLayout对象调用SetError(),设置错误信息;

三、FloationgActionButton

1.作用:悬浮在页面上方的按钮;

2.特有属性:

app:elevation="5dp" //阴影效果
app:pressedTranslationZ="10dp" //按压时显示效果
app:rippleColor="@color" //颜色

四、DrawerLayout

1.作用:作为布局的子布局,实现左右两侧的侧滑效果,用于添加菜单;

2.使用:(1)以DraweLayout作为根布局,内部可以包含三个及三个以下布局;

(2)为作为菜单的布局设置android:layout_gravity属性,在左侧显示值为”left”,在右侧显示值为”right”;

(3)动态打开或关闭DrawerLayout中的布局:

      DraweLayout对象调用openDrawer(),传入Gravity.Left或者Gravity.Right两种参数值打开关闭布局;

      DrawerLayout对象调用closeDrawer(),传入两种参数值关闭布局;

五、NavigationView

1.作用 :作为导航栏或者菜单栏的Menu视图添加;

2.使用:(1)静态属性:app:headerLayout添加头布局文件;

  (2)静态属性:app:menu添加菜单文件;

  (3)设置头视图监听:

  (3-1)得到头视图:NavigationView对象调用getHeaderView(),传入索引号0;

     注意:如果没有getHeaderView(),可以使用findViewById()得到头视图;

   (3-2)找控件:头视图调用findViewById()得到头视图中的控件;

  (3-3)设置监听事件:得到的控件调用setOnClickListener();

  (4)设置menu按钮监听:

     NavigationView对象调用setNavigationItemSelectedListener(),

      传入NavigationView. OnNavigationViewIntemSelectedListener接口,

      重写onNavigationItemSelected()接口;

六、TabLayout

1.作用:与ViewPager结合,达到联动导航效果;

2. 静态属性:

1 app:tabIndicatorColor="@color/colorAccent"

2 app:tabIndicatorHeight="5dp"

3 app:tabSelectedTextColor="@color/colorAccent"

4 app:tabTextColor="#ffffff"

3.动态使用:

(1)声明并实例化TabLayout,ViewPager;

(2)为ViewPager控件设置适配器;

(3)设置Tablayout与ViewPager的联动:

   (3-1)TabLayout对象调用setupWithViewPager()传入要联动的ViewPager对象;

    (3-2)在自定义ViewPager的适配器中,重写getPageTitle(),返回当前标题;

   (3-3)TabLayout对象调用setTabMode(),传入TabLayout.MODE_SCROLLABLE常量,设置TabLayout的滚动;

七、NestedScrollView

1.作用:替代ScrollView;

2.使用:与ScrollView相同,内部只能有一个子控件;

八、Toolbar

1.作用:

  注意:使用Toolbar时必须将该Activity的主题设置为NoActionBar属性值;

2.使用:Toolbar控件必须放在AppBarLayout控件中,而AppBarLayout最好放在CoordinatorLayout控件(协同布局)中;

3.静态属性:

1 app:layout_scrollFlags=”scroll|enterAlways” //Toolbar控件中,设置滑动响应事件;

2 app:title=”” //为Toolbar设置标题名;

3 app:layout_behavior="@string/appbar_scrolling_view_behavior" //NestedScrollView控件中,设置控件行为

4.动态方法:

(4-1)声明并实例化Toolbar控件实例;

(4-2)将ActionBar设置为Toolbar:在当前Activity中调用setSupportActionBar(),传入新创建的Toolbar对象;

(4-3)当前Activity主题修改为NoActionBar模式:在清单文件中设置当前Activity标签下的属性android:theme="@style/Theme.AppCompat.NoActionBar";

注意:只有当前Activity主题为NoActionBar时,才会显示Toolbar;

九、CollapsingToolbar

1.作用:实现Toolbar的折叠效果;

2.使用:

  CollapsingToolbar必须放在AppBarLayout中,

  而AppBarLayout最好放在协同布局CoordinatorLayout控件中;

  而Toolbar作为CollapsingToolbar的不折叠控件使用;

注意:CollapsingToolbar控件之下必须有且只有两个控件;

3.静态属性:

app:title=”标题” //设置标题内容 app:layout_scrollFlags="scroll|exitUntilCollapsed" //设置滚动标记 app:expandedTitleGravity="right|bottom" //设置标题位置 app:expandedTitleMarginBottom="@dimen/activity_vertical_margin" //设置标题到底部的距离 app:expandedTitleMarginEnd="@dimen/activity_horizontal_margin" //设置标题距底部的距离 app:contentScrim="#00ff00" //设置折叠时上方控件的颜色 //注意:下边两条属性必须设置; app:layout_collapseMode="parallax" //在其需要被折叠的子控件中; app:layout_collapseMode="pin": //在需要留下来的子控件中;

4.动态设置:

//(1)设置展开状态下标题颜色 collapsingToolbarLayout.setExpandedTitleColor(Color.WHITE); //(2)设置折叠后标题颜色 collapsingToolbarLayout.setCollapsedTitleTextColor(Color.BLUE);

以上所述是小编给大家介绍的Android5.0中Material Design的新特性,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-20 08:01:53

Android5.0中Material Design的新特性的相关文章

Android5.0中Material Design的新特性_Android

 Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出内容. Material Design对排版.材质.配色.光效.间距.文字大小.交互方式.动画轨迹都做出了建议,以帮助设计者设计出符合Material Design风格的应用. Material Design设计语言鼓励大家使用充满活力的鲜艳色彩,并在同一界面建议使用三种色调,并保障有一个强色调,

J2SE5.0中最有趣的新特性:注释(annotation)

本文为原创,如需转载,请注明作者和出处,谢谢! 本文曾发表于IT168:http://tech.it168.com/j/e/2006-09-29/200609291054707.shtml     本文将向你介绍J2SE5.0中的新特性之一:注释.本文将从什么是注释:J2SE5.0中预定义的注释:如何自定义注释:如何对注释进行注释以及如何在程序中读取注释5个方面进行讨论. 一.什么是注释     说起注释,得先提一提什么是元数据(metadata).所谓元数据就是数据的数据.也就是说,元数据是描

PHP6 中可能会出现的新特性预览

 PHP核心团队开发者Pierre Joye近日在官网上贴出了PHP6中可能会出现的新特性.之所以说是"可能会出现",是因为目前PHP6项目还处于草案阶段,这些特性还只是一个想法,还需要讨论,随时都有可能变更     这些特性包括:       集成OpCache(OPcache通过对PHP的opcode进行缓存和优化,可以提高PHP程序的执行速度)     改善对64位环境的支持     支持Unicode     清理内部API     提升代码质量,做到Warning-Free

ES6中非常实用的新特性介绍_javascript技巧

ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设"深入浅出ES6"专栏,来看一下ES6将给我们带来哪些新内容. 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖.ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下. 1. for-of循环 这个东西用来循环数组很爽,原因呢,是因为它弥补了目前

hibernate 3 和hibernate 4 的区别,4.0以上版本加入哪些新特性,有什么优势?

问题描述 hibernate 3 和hibernate 4 的区别,4.0以上版本加入哪些新特性,有什么优势? hibernate 3.6.10.Final 和 hibernate 4.3.8.Final 的区别, 解决方案 http://blog.csdn.net/iaiti/article/details/9336703 解决方案二: http://blog.sina.com.cn/s/blog_3e20fc040100yhzq.html

安卓用户爽翻:详解Android 5.0系统的十大新特性

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

Flash8.0专业版及播放器新特性

相关文章: Dreamweaver 8 新功能简介 Fireworks 8 新功能简介 Macromedia Studio 8开始网上预订送背包 Flash 8.0 分为两个版 Flash Professional 8 和 Flash Basic 8,之前我们所猜测的 Flash MX 2006 是不存在的. Flash Prefessional 8 1,滤镜效果 Flash Professional 8 滤镜可以让你给影片剪辑(MovieClip)添加特殊效果,例如阴影,模糊等等(滤镜同样可以

SQL Server2012在程序开发中实用的一些新特性

SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好.官方给出了一大堆SQL2012相对于SQL2008R2的新特性,但是大多数对于普通开发人员来说都是浮云,根本用不到,下面就说说一些对于开发人员来说比较有用的新特性. 一.增加了Sequence对象. 这个对于Oracle用户来说是最熟悉不过的数据库对象了,现在在SQL Server中终于也看到了类似的对象,只是在使用的语法上有一点点不一样.创建语法也是CREATE

Swift 2.0初探: 值得注意的新特性

转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用.我在这里也说道说道Swift 2.0中值得大家注意的新特性. guard语句 guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会