“Stop Trying to Reinvent the Wheel”(不要重复造轮子),作为程序猿入门的第一个原则,冥冥之中向我们再次证明了一个真理,前人栽树,后人乘凉,也许你绞尽脑汁,废寝忘食所实现出来的功能,早就有大神给分享在开源社区了......

自从多年前Github在中国爆火以来,逐渐成为优秀的开发者们无私开源项目的聚集地,同时也给其他慕名而来解决需求的用户带来便利,因此,在你求天不应告地无门时,Github上的开源项目库或许就能成为沙漠里的及时雨,但这都离不开闲暇之余,一早就了解在Github上最热门以及实用的Android开源项目库。如此小编就来挑选一些个人感觉最有趣的Android UI库与乃们共勉,相信在合理利用这些Android UI库后,能提高你的工作效率,达到快速逆天改命的奇效~

1.Matisse

这是一个精美的本地图片和视频选择器。主要功能有:

  • 支持包括 JPEG、PNG、GIF 等图片类型和 MPEG、MP4 等视频类型的选择
  • 支持应用自定义主题,并包含两个内置的主题;
  • 支持不同的图像加载器;
  • 支持自定义过滤器规则,
  • 支持在 Activity 和 Fragment 中所有操作。

你可以在本库的wiki 中找到更多相关内容。

2.SlidingRootNav

我们可以将这个库视为DrawerLayout 的 ViewGroup,drawer(抽屉) 隐藏在内容视图之下,可以通过改变它们来显示 drawer。REAMDE 很全面,值得一看。

3. SlimAdapter

这是一种不使用 ViewHolder 来编写适配器的方法。主要功能包括:

  • 不包含 ViewHolders
  • 没有反射
  • 流畅和简单的 API
  • 支持多类型适配器
  • 支持 Kotlin
  • 支持简单的 DiffUtil

4.Spruce Android Animation Library (安卓动画库)

Spruce 是一个轻量级的动画库,可以帮助排版屏幕上的动画。使用有很多不同的动画库时,开发人员需要确保每个视图都能够在适当的时间活动。 Spruce 可以帮助设计师获得复杂的多视图动画,而不是让开发人员在原型阶段就感到畏惧。

5. UltraViewPager

UltraViewPager 是一个封装多种特性的 ViewPager ,主要是为多页面切换场景提供统一解决方案。

主要功能

  • 支持横向滑动/纵向滑动
  • 支持一屏内显示多页
  • 支持循环滚动
  • 支持定时滚动,计时器使用 Handler 实现
  • 支持设置 ViewPager 的最大宽高
  • setRatio 按比例显示 UltraviewPager
  • 内置 indicator ,只需简单设置几个属性就可以完成展示,支持圆点和 Icon;
  • 内置两种页面切换动效

该库有一个非常良好的文档。

6.InfiniteCards

可自定义动效的卡片切换视图,该库有助于实现卡片 UI ,然后用一个漂亮的动画切换它们。

参数

①animType : 动效展示类型

l front : 将点击的卡片切换到第一个

l switchPosition : 将点击的卡片和第一张卡片互换位置

l frontToLast : 将第一张卡片移到最后,后面的卡片往前移动一个

②cardRatio : 卡片宽高比

③animDuration : 卡片动效时间

④animAddRemoveDelay : 卡片组切换时,添加与移出时,相邻卡片展示动效的间隔时间

⑤animAddRemoveDuration : 卡片组切换时,添加与移出时,卡片动效时间

7.ShadowImageView

该库可帮助你为图片添加更有意义的阴影。根据 README ,它的作用是:可以根据图片内容变阴影颜色,更加细腻的阴影效果。此外,它也非常易于使用。

8.PolygonDrawingUtil

这是一个高效的 Android 实用程序类,用于在 Canvas 上绘制常规的多边形。 我们可以指定:

  • 边数(≥3)
  • 中心点坐标
  • 外接圆半径(从中心到顶点的距离)
  • 圆角半径
  • 多边形旋转度
  • 填充/描边颜色

9.Aesthetic

这是一个新的库,仍处于测试版,但它做了一件非常酷的事情 - 它通过 Rx 支持动态改变系统主题! 作者是这么描述的:

一个快速和易于使用的即插即用的动态主题引擎。由 Rx 支持,适用于 Android 应用。

该库文档非常不错、内容全面,值得一读。

有没有达到醍醐灌顶的奇效呢?如果效用不错,请继续并持续关注我,未来有更多精彩干货让你的level 快速UP UP啊~