直接拿来用!十大Material Design开源项目
介于拟物和扁平之间的Material Design自面世以来,便引起了很多人的关注与思考,就此产生的讨论也不绝于耳。本文详细介绍了在Android开发者圈子里颇受青睐的十个Material Design开源项目,从示例、FAB、菜单、动画、Ripple到Dialog,看被称为“Google第一次在设计语言和规范上超越了Apple”的Material Design是如何逐渐成为App的一种全新设计标准。
1. MaterialDesignLibrary
在众多新晋库中,MaterialDesignLibrary可以说是颇受开发者瞩目的一个控件效果库,能够让开发者在Android 2.2系统上使用Android 5.0才支持的控件效果,比如扁平、矩形、浮动按钮,复选框以及各式各样的进度指示器等。
除上述之外,MaterialDesignLibrary还拥有SnackBar、Dialog、Color selector组件,可非常便捷地对应用界面进行设置。
进度指示器样式效果设置:
- <com.gc.materialdesign.views.ProgressBarCircularIndetermininate
- android:id="@+id/progressBarCircularIndetermininate"
- android:layout_width="32dp"
- android:layout_height="32dp"
- android:background="#1E88E5" />
Dialog:
- Dialog dialog = new Dialog(Context context,String title, String message);
- dialog.show();
相关链接:MaterialDesignLibrary的mobilehub主页
2. RippleEffect
由来自法兰西的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>
相关链接:RippleEffect的mobilehub主页
3. MaterialEditText
随着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"
相关链接:MaterialEditText的mobilehub主页
4. Android-LollipopShowcase
Android-LollipopShowcase是由来自奥地利的移动、后端及Web开发者Mike Penz所开发的演示应用,集中演示了新Material Design中所有的UI效果,以及Android Lollipop中其他非常酷炫的特性元素,比如Toolbar、RecyclerView、ActionBarDrawerToggle、Floating Action Button(FAB)、Android Compat Theme等。
相关链接:Android-LollipopShowcase的mobilehub主页
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>
相关链接:MaterialList的mobilehub主页
6. android-floating-action-button
Floating Action Button(FAB)是众多专家大牛针对Material Design讨论比较细化的一个点,通过圆形元素与分割线、卡片、各种Bar的直线形成鲜明对比,并使用色彩设定中鲜艳的辅色,带来更具突破性的视觉效果。也正因如此,在Github上,有着许多与FAB相关的开源项目,基于Material Design规范的开源Android浮动Action Button控件android-floating-action-button便是其中之一。
其主要特性如下:
- 支持常规56dp和最小40dp的按钮;
- 支持自定义正常、Press状态以及可拖拽图标的按钮背景颜色;
- AddFloatingActionButton类能够让开发者非常方便地直接在代码中写入加号图标;
- FloatingActionsMenu类支持展开/折叠显示动作。
相关链接:android-floating-action-button的mobilehub主页
7. android-ui
android-ui是Android UI组件类库,支持Android API 14+,包含了ActionView、RevealColorView等UI组件。其中,ActionView可使Action动作显示动画效果,而RevealColorView则带来了Android 5.0中的圆形显示/隐藏动画体验。
相关链接:android-ui的mobilehub主页
8. Material Menu
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)
相关链接:Material Menu的mobilehub主页
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();
- }
- }
- }
相关链接:Android-ObservableScrollView的mobilehub主页
10. Material Design Icons
最后,再来介绍一下Google Material Design规范的官方开源图标集Material Design Icons。良心Google开源了包括Material Design系统图标包在内的750个字形,涵盖动作、音视频、通信、内容、编辑器、文件、硬件、图像、地图、导航、通知、社交等各个方面,适用于Web、Android和iOS应用开发,绝对是开发者及设计师必备的资源。
图标格式主要包括:
- SVG格式,24px和48px;
- SVG和CSS Sprites;
- 适用于Web平台的1x、2x PNG格式图标;
- 适用于iOS的1x、2x、3x PNG图标;
- 所有图标的Hi-dpi版本(hdpi、mdpi、xhdpi、xxhdpi、xxxhdpi)。
直接拿来用!十大Material Design开源项目相关推荐
- 十大Material Design开源项目
http://www.csdn.net/article/2014-11-21/2822753-material-design-libs
- python机器学习开源代码_2016 年十大 Python 机器学习开源项目
2016年十大Python机器学习开源项目 1.Scikit-learn 用于数据挖掘和数据分析的简单而有效的工具,基于NumPy,SciPy和matplotlib,开源,商业可用的BSD许可证. C ...
- 滴滴十大技术方向开源项目出炉!有点牛啊!
点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...
- 滴滴十大技术方向开源项目出炉
点击上方"Github中文社区",关注 看遍Github好玩的项目 作者 | 滴滴技术 出品 | 滴滴技术 作为卓越的一站式移动出行和生活平台,滴滴在亚洲.拉美和澳洲为超过5. ...
- 滴滴十大技术方向开源项目出炉!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 滴滴技术 来源 | 滴滴技术 作为卓越的一站式 ...
- GitHub 十大顶级 JavaScript 开源项目
在本文中,我们将介绍GitHub上顶级的JavaScript开源项目. 作者 | Isha Jauhari 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: ...
- 2020十大边缘计算开源项目
2020 年是非常特别的一年,各行各业都非常艰难,但是有一股力量逆势增长,不断迎来新的突破,那就是开源.即使是资本寒冬,一些开源公司如EMQ也能逆势融资,Rancher也能和SUSE强强联合,开源充满 ...
- 十大Python机器学习开源项目
摘要: 1.Scikit-learn 用于数据挖掘和数据分析的简单而有效的工具,基于NumPy,SciPy和matplotlib,开源,商业可用的BSD许可证. Commits: 21486, Con ...
- python 开源项目 书_十大 Python 机器学习开源项目
1.Scikit-learn 用于数据挖掘和数据分析的简单而有效的工具,基于NumPy,SciPy和matplotlib,开源,商业可用的BSD许可证. Commits: 21486, Contrib ...
最新文章
- 创建一个打不开删不掉的文件夹
- submodule切换分支_git子模块分支会随主项目的分支切换吗?
- 面向对象中构造函数的小练习
- 靠谱的Pycharm安装详细教程
- web项目部署详细步骤
- 【华为云技术分享】五个Taurus垃圾回收compactor优化方案,减少系统资源占用
- vivado MMCM/PLL IP使用
- jmeter-01 JMeter HTTP测试的各元件功能演示示例
- java json 合并_java中,怎么把两个jsonObject合并成一个?
- 公钥和私钥,数字签名
- 裴礼文《数学分析中的典型问题与方法》P31~60
- 【平衡小车】新手应知一二之过程梳理和问题总结
- 域名注册网站服务比较
- 因为星期三有计算机课的英语,34 (五年级上册)第二单元 我星期里的每天--英汉对...
- 常用的计算机优化软件有哪些,计算机常用的硬件和软件优化软件和优化方法有哪些,如何提高WindowsXP系统的运行速度和稳定性...
- Oracle调优总结
- 国徽FLASH SM25QH256M烧录问题总结
- NASA丨登陆火星六大前沿技术
- java所定义的版本中不包括_java试题模拟出题
- 基于proteus的51单片机仿真实例七十六、8-3编码芯片74HC148应用实例
热门文章
- c md5加密 和java不一样_C#的MD5加密为什么和JAVA的加密出来的结果不一样?
- android自定义转场动画,Activity转场动画(5.0+)
- 图片裁剪_如何使用word裁剪图片图形?如何使用word修整图片?
- matlab中平方根法,平方根法和改进的平方根法解线性方程组(Matlab程序)
- docker中使用idea部署运行项目(项目以镜像方式运行)
- 事务和锁机制是什么关系
- java record用法_JDBM学习八(Record)
- Matplotlib从入门到精通
- 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN
- C++查漏补缺之流状态