今年最新的30个Android库,你了解吗?
1.MaterialStepperView
它是用Material Design实现Steppers的。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/1-1508401427665.png)
目前,Stepper只有垂直视图,但将来会有更多的风格。你可以尝试一下,如下图:
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/2-1508401427664.gif)
你可以自定义normal/active两个状态的颜色,完成图标,开启动画并设置动画时长。可通过Github上的设置项和样式查阅所有设置项。该库支持API 17+,详情请查阅wiki文档。
2. MultiSnapRecyclerView
这是分屏滚动的Android库。
MultiSnapRecyclerView为RecyclerView提供了分屏功能。
MultiSnapRecyclerView为RecyclerView提供了分屏功能。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/3-1508401427669.gif)
目前提供的功能有:
- start, end和center三个位置的吸附,
- snap count 指定要分屏的数量,
- 支持水平和垂直分屏,
- 滚动时的回调。
3. Garland View for Android
该库可实现如下的布局:
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/4-1508401427678.gif)
GarlandView 外部是一个水平滚动的视图,视图内的每一个子视图可垂直滚动。
你可以在README中找到其他重要信息。还有一个示例App。该库支持API 19及更高版本。
你可以在README中找到其他重要信息。还有一个示例App。该库支持API 19及更高版本。
4. VegaLayoutManager
这是一个自定义的布局管理器——滚动时缩小并淡出头部。这是受到Dribble项目的启发。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/5-1508401427648.gif)
5. ExpandableLayout
这个库的名字不言而喻,它是一个基于LinearLayout的可扩展的布局。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/6-1508401427686.png)
README里含有你启动时需要的所有信息,另外,还有一个示例App可以帮助你快速跳转到代码中。
6. SwipeBackLayout
SwipeBackLayout允许你使用手势返回上一个界面。
你可以设置滑动方向,如从左到右、从右到左、从顶部到底部、从底部到顶部。
你还可以设置是否只能从边缘滑动。
你可以设置滑动方向,如从左到右、从右到左、从顶部到底部、从底部到顶部。
你还可以设置是否只能从边缘滑动。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/7-1508401427662.gif)
SwipeBackLayout只能包含一个子布局,例如:
- LinearLayout,RelativeLayout,FrameLayout,TableLayout等。
- ScrollView,HorizontalScrollView,NestedScrollView等。
- RecyclerView,AbsListView(ListView)等子类。
- ViewPager,WebView等。
该项目里面有一个详细说明的文档、示例APP和一个APK。
7. SmartCropper
这是一个可以智能剪裁图像的库,可以识别边框并修正裁剪后的图像,适用于身份证、名片、文件等其他图片文件的裁剪。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/9-1508401427658.png)
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/10-1508401427672.gif)
特征:
- 以智能的方式裁剪图片,还可以识别边框;
- 支持拖动、放大效果以提升定位体验;
- 使用透视变换裁剪,可以修正先前裁剪的图片;
- 支持多种UI设置,如辅助线、蒙版、设置锚点、放大等效果。
目前,此库采用优化点算法,CropImageView具有选择放大效果,而且它可以使用CropImageView XML来进行设置。
8. Date Range Picker
Date Range Picker是具有改进UI的自定义日期范围选择器。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/11-1508401427685.png)
项目的简介写得很好,易于理解。
9. StoriesProgressView
我们都知道Facebook和Instagram展现在他们App上的Stories ,这是介绍StoriesProgressView的一个库,它可以扩展LinearLayout和允许你添加以下视图。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/13-1508401427681.gif)
该项目包含一个简短但详细的README以及示例App。
10. CosmoCalendar
这是一个可以自定义日历的库,它可以提供很多功能和UI设置,例如:
- 改变日历方向;
- 自定义文本颜色;
- 设置类型和颜色;
- 定义导航按钮等;
- 还有很多其他功能;
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/14-1508401427659.png)
11. Reflow Text Animator
相信大家都听过Plaid app,这是由Shazam工程团队开发的。
它是Plaid’s ReflowText的端口,无论它们的大小或风格怎样,都可以轻松地在同级的TextView之间进行转换。
这个库很容易使用,快去试试吧!
它是Plaid’s ReflowText的端口,无论它们的大小或风格怎样,都可以轻松地在同级的TextView之间进行转换。
这个库很容易使用,快去试试吧!
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/16-1508401427664.gif)
12. AdaptiveIconPlayground
这不是一个库,而是由Nick Butcher开发的用于试验自适应图标的AndroidApp。根据README:
此应用程序可以从已安装的App中查找支持自适应图标的App,并将其显示在网格中,然后你可以切换不同的蒙版形状以匹配不同设备的显示效果。
目前提供两种视觉效果:
此应用程序可以从已安装的App中查找支持自适应图标的App,并将其显示在网格中,然后你可以切换不同的蒙版形状以匹配不同设备的显示效果。
目前提供两种视觉效果:
- 滚动效果;
- 触摸时的尺寸缩放视差效果;
13.Tivi
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/17-1508401427664.png)
Tivi是跟踪电视节目的App,它与Track.tv相连接,它的开发者是Chris Banes,虽然这项开发工作仍在进行中,但它使用的都是最前沿的组件、库和工具,其中包括Kotlin、RxJava 2、所有架构组件(Room,LiveData和Lifecycle-components)。
14.RxIdler
这是Espresso的IdlingResource
它的开发者是 Square Engineering
它支持RxJava 1 和 RxJava 2,祝你用得愉快!
它的开发者是 Square Engineering
它支持RxJava 1 和 RxJava 2,祝你用得愉快!
15.MRichEditor
这是一个丰富的文本编辑器(基于summernote)。
它支持多种功能,包括粗体、斜体、下划线、快捷键、标题(包括六级标题)、段落、引用,有(无)序列表、代码、水平规则、链接、图像,对齐方式(居中、两端对齐、左对齐、右对齐)、下标、上标、字体名称和大小、缩进、减少缩进、撤消/还原。
它支持多种功能,包括粗体、斜体、下划线、快捷键、标题(包括六级标题)、段落、引用,有(无)序列表、代码、水平规则、链接、图像,对齐方式(居中、两端对齐、左对齐、右对齐)、下标、上标、字体名称和大小、缩进、减少缩进、撤消/还原。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/18-1508401427674.gif)
在这种情况下,你需要仔细观察示例App,因为它几乎没有文档供你参考。
16.Android Clean Architecture Boilerplate
Buffer团队和Joe Birch开发的示例App展示了一种Android应用程序的干净架构。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/20-1508401427675.png)
创建此样板的原因:
实验模块化;
分享一些干净架构实现方式;
一开始采用干净架构能应对未来复杂的项目需求。
该项目的UI和单元测试都是用Kotlin编写。
它的文档里有详尽的介绍,非常适合想学习的开发者,力荐!
实验模块化;
分享一些干净架构实现方式;
一开始采用干净架构能应对未来复杂的项目需求。
该项目的UI和单元测试都是用Kotlin编写。
它的文档里有详尽的介绍,非常适合想学习的开发者,力荐!
17.RxJava2Debug
使用过RxJava会发现有时很难读取异常,很难在Rx流中定位到问题。这就是为什么这个库被创建的原因。你可以在README中阅读更多关于的内容。
这个库的功能有:
这个库的功能有:
- 生成堆栈轨迹
- 过滤堆栈轨迹
18. Resizer
Resizer是一个轻量级的,而且易于使用的Android库,用于图像缩放。它允许你将图像文件放大或缩小的同时,保持宽高比。
这个项目的灵感来自于Compressor。
说明书:
Minimum SDK: API 21
默认设置:
这个项目的灵感来自于Compressor。
说明书:
Minimum SDK: API 21
默认设置:
- targetLength: 1080
- quality: 80
- outputFormat: JPEG
- outputDirPath: the external files directory of your app
支持的输入格式:
- BMP
- GIF
- JPEG
- PNG
- WEBP
支持的输出格式
- JPEG
- PNG
- WEBP
支持的图像质量范围:0~100
- 值越大,图像质量越好同时图片越大
- PNG,无损格式,会忽略该设置
19.FaceDetector
该库允许你在相机里预览图片时,实时检测人脸。它与Fotoapparat库非常相似,但它也支持其他相机库和源。
它的使用过程十分简单,而且项目记录相当详细。
它的使用过程十分简单,而且项目记录相当详细。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/21-1508401427660.gif)
20.RxGps
它的开发者是Florent Champigny,它很容易找到我们各自的定位。
它兼容RxJava2,它还自动申请GPS的运行权限,并查看当下的服务是否适合您。
它兼容RxJava2,它还自动申请GPS的运行权限,并查看当下的服务是否适合您。
21. MapMe
MapMe是一个搭配地图功能使用的Android库。
MapMe将适配器模式带到Maps,简化了标记和注释的管理。
MapMe将适配器模式带到Maps,简化了标记和注释的管理。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/22-1508401427663.png)
MapMe与Google Maps和Mapbox配合使用,README 里的内容很详细,而且它是用Kotlin编写的。
22. RevelyGradient
该库用于颜色渐变管理。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/23-1508401427664.gif)
您可以用Java或Kotlin编写它,项目附带的说明文档很简短,但足够你能够使用它。
23. LiteUtilities
这是一个用Kotlin编写的库,它有助于从代码中消除样板。目前它的功能有:
- RecyclerUtils—— 省去设置适配器的麻烦,现在只需4行代码就可以设置好适配器。
- ScrollUtils—— 使用RecyclerView或NestedScrollView时,可以以轻松隐藏/滚动显示FloateActionButton。
- ToastUtils—— 用于创建toasts。
- SPUtils—— 用于共享选项的简单DSL。
- ValidatorUtils—— 可以快速而轻易地进行文本检验。
- LogUtils—— 简单易用的Android日志记录。
24.KOIN
KOIN是一个使用Kotlin来编写的依赖注入框架,它的功能是能够推动做事的进度。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/24-1508401427678.png)
据作者介绍,它
- 没有代理/ CGLib
- 没有代码生成
- 没有内省
它的说明文档写得很棒,有示例和wiki,还有联系方式。
25.koptional
是那些总试图让自己的安全系统更加顺畅的Kotlin极简主义者的理想选择。
作者给出的理由是:
由于具有空值安全特性,Kotlin不需要可选值类型。但是有 RxJava2 这样的 APIs 和库不接受空值导致 Kotlin 仍然需要支持可选值类型。
大多数情况下可以使用sealed class来表示空值,然而像向 Rx 流传递String?这种情况,可选值类型是更好的选择。
作者给出的理由是:
由于具有空值安全特性,Kotlin不需要可选值类型。但是有 RxJava2 这样的 APIs 和库不接受空值导致 Kotlin 仍然需要支持可选值类型。
大多数情况下可以使用sealed class来表示空值,然而像向 Rx 流传递String?这种情况,可选值类型是更好的选择。
26. Parallax
这是一个模拟Apple TV 视差图标的库。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/25-1508401427650.gif)
它的README写得非常好,值得一试。
27.droid-vizu
Droid-vizu旨在通过轻松交换渲染器来获得酷炫效果,从而提供定制的可视化效果.
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/26-1508401427682.gif)
28.Drone
这不是Android库,而是由CésarFerreira提供的库的管理者。它是由于对java社区的嫉妒,因为他们的快速可靠的依赖管理器。因此,您只需执行以下操作:谷歌搜索一个库,检查,阅读文档等。
drone add creator/library module
例如:
drone add jakewharton/butterknife
drone add creator/library module
例如:
drone add jakewharton/butterknife
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/27-1508401427676.gif)
29.From-design-to-Android-part2
这是一个涵盖在Android上创建整洁UI的项目。这一次,SaúlMolinero涵盖:
- 使Alex Lockwood的ShapeShifter工具
- AndroidVectorDrawables
- ScaleDrawables
- 自适应图标等。
![](http://cdn1.infoqstatic.com/statics_s1_20171017-0336-1/resource/news/2017/10/30-Android-attention/zh/resources/28-1508401427686.png)
30.Reagent
Reagent是Jake Wharton总结的未来响应式库的体验。