来自:http://www.csdn.net/article/2014-11-21/2822753-material-design-libs/1android
介于拟物和扁平之间的Material Design自面世以来,便引发了不少人的关注与思考,就此产生的讨论也不绝于耳。本文详细介绍了在Android开发者圈子里颇受青睐的十个 Material Design开源项目,从示例、FAB、菜单、动画、Ripple到Dialog,看被称为“Google第一次在设计语言和规范上超越了Apple”的 Material Design是如何逐渐成为App的一种全新设计标准。git
1. MaterialDesignLibrarygithub
在众多新晋库中,MaterialDesignLibrary能够说是颇受开发者瞩目的一个控件效果库,可以让开发者在Android 2.2系统上使用Android 5.0才支持的控件效果,好比扁平、矩形、浮动按钮,复选框以及各式各样的进度指示器等。后端
除上述以外,MaterialDesignLibrary还拥有SnackBar、Dialog、Color selector组件,可很是便捷地对应用界面进行设置。设计模式
进度指示器样式效果设置: app
Dialog:编辑器
Dialog dialog = new Dialog(Context context,String title, String message); dialog.show();
2. RippleEffectide
由来自法兰西的Robin Chutaux开发的RippleEffect基于MIT许可协议开源,可以在Android API 9+上实现Material Design,为开发者提供了一种极为简易的方式来建立带有可扩展视图的header视图,而且容许最大程度上的自定制。工具
用法(在XML文件中声明一个RippleView):布局
<com.andexert.library.RippleView android:id="@+id/more" android:layout_width="?android:actionBarSize" android:layout_height="?android:actionBarSize" android:layout_toLeftOf="@+id/more2" android:layout_margin="5dp" ripple:rv_centered="true"> <ImageView android:layout_width="?android:actionBarSize" android:layout_height="?android:actionBarSize" android:src="@android:drawable/ic_menu_edit" android:layout_centerInParent="true" android:padding="10dp" android:background="@android:color/holo_blue_dark"/> </com.andexert.library.RippleView>
随着Material Design的到来,AppCompat v21也为开发者提供了Material Design的控件外观支持,其中就包括EditText,但却并很差用,没有设置颜色的API,也没有任何Google Material Design Spec中提到的特性。因而,来自国内的开发者“扔物线”开发了MaterialEditText库,直接继承EditText,无需修改Java文件即 能实现自定义控件颜色。
自定义Base Color:
app:baseColor="#0056d3"
自定义Error Color:
app:maxCharacters="10"
app:errorColor="#ddaa00"
Android-LollipopShowcase是由来自奥地利的移动、后端及Web开发者Mike Penz所开发的演示应用,集中演示了新Material Design中全部的UI效果,以及Android Lollipop中其余很是酷炫的特性元素,好比Toolbar、RecyclerView、ActionBarDrawerToggle、 Floating Action Button(FAB)、Android Compat Theme等。
5. MaterialList
MaterialList是一个可以帮助全部Android开发者获取谷歌UI设计规范中新增的CardView(卡片视图)的开源库,支持 Android 2.3+系统。做为ListView的扩展,MaterialList能够接收、存储卡片列表,并根据它们的Android风格和设计模式进行展现。此 外,开发者还能够建立专属于本身的卡片布局,并轻松将其添加到CardList中。
使用过程代码,在布局中声明MaterialListView:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"> <com.dexafree.materiallistviewexample.view.MaterialListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/material_listview"/> </RelativeLayout>
6. android-floating-action-button
Floating Action Button(FAB)是众多专家大牛针对Material Design讨论比较细化的一个点,经过圆形元素与分割线、卡片、各类Bar的直线造成鲜明对比,并使用色彩设定中鲜艳的辅色,带来更具突破性的视觉效 果。也正因如此,在Github上,有着许多与FAB相关的开源项目,基于Material Design规范的开源Android浮动Action Button控件android-floating-action-button即是其中之一。
其主要特性以下:
7. android-ui
android-ui是Android UI组件类库,支持Android API 14+,包含了ActionView、RevealColorView等UI组件。其中,ActionView可以使Action动做显示动画效果,而 RevealColorView则带来了Android 5.0中的圆形显示/隐藏动画体验。
Material Menu为开发者带来了很是酷炫的Android菜单、返回、删除以及检查按钮变形,彻底控制动画,并为开发者提供了两种MaterialMenuDrawable包装。
自定义颜色等操做:
// change color MaterialMenu.setColor(int color) // change transformation animation duration MaterialMenu.setTransformationDuration(int duration) // change pressed animation duration MaterialMenu.setPressedDuration(int duration) // change transformation interpolator MaterialMenu.setInterpolator(Interpolator interpolator) // set RTL layout support MaterialMenu.setRTLEnabled(boolean enabled)
9. Android-ObservableScrollView
Android-ObservableScrollView是一款用于在滚动视图中观测滚动事件的Android库。它可以垂手可得地与 Android 5.0 Lollipop引进的工具栏(Toolbar)进行交互,还能够帮助开发者实现拥有Material Design应用视觉体验的界面外观,支持ListView、ScrollView、WebView、RecyclerView、GridView组件。
交互代码回调:
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) { ActionBar ab = getSupportActionBar(); if (scrollState == ScrollState.UP) { if (ab.isShowing()) { ab.hide(); } } else if (scrollState == ScrollState.DOWN) { if (!ab.isShowing()) { ab.show(); } } }
最后,再来介绍一下Google Material Design规范的官方开源图标集Material Design Icons。良心Google开源了包括Material Design系统图标包在内的750个字形,涵盖动做、音视频、通讯、内容、编辑器、文件、硬件、图像、地图、导航、通知、社交等各个方面,适用于 Web、Android和iOS应用开发,绝对是开发者及设计师必备的资源。
图标格式主要包括: