博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017年Spring发布了30个新的Android库,值得您关注
阅读量:2518 次
发布时间:2019-05-11

本文共 13950 字,大约阅读时间需要 46 分钟。

by Michal Bialas

由Michal Bialas

2017年Spring推出的30个最酷的Android库 (The 30 Coolest Android Libraries from Spring 2017)

These are my 30 favorite new Android libraries that have come out since March 2017. Some of them aren’t production ready yet, but you may have lots of fun using them. I hope you enjoy these.

这些是我自2017年3月以来推出的30个最喜欢的新Android库。其中一些尚未准备好投入生产,但是使用它们可能会带来很多乐趣 。 我希望你喜欢这些。

Here they are in no particular order:

在这里,它们没有特定的顺序:

1. (1. )

This is a beautiful local images and videos selector. Main functionalities:

这是一个漂亮的本地图像和视频选择器。 主要功能:

  • Selecting images including JPEG, PNG, GIF and videos including MPEG, MP4,

    选择包括JPEG,PNG,GIF的图像以及包括MPEG,MP4,
  • applying custom themes, including two built-in ones,

    应用自定义主题,包括两个内置主题,
  • different image loaders,

    不同的图像加载器
  • defining custom filter rules,

    定义自定义过滤规则
  • fully operational within Activities and Fragments.

    ActivitiesFragments完全运作。

You can find more in the lib’s .

您可以在lib的找到更多信息。

2. (2. )

Spruce is a lightweight animation library that helps choreograph the animations on the screen. With so many different animation libraries out there, developers need to make sure that each view is animating at the appropriate time. Spruce can help designers request complex multi-view animations and not have the developers cringe at the prototype.
Spruce是一个轻量级的动画库,可帮助编排屏幕上的动画。 由于存在许多不同的动画库,开发人员需要确保每个视图都在适当的时间进行动画处理。 云杉可以帮助设计人员请求复杂的多视图动画,而无需开发人员屈服于原型。

3. (3. )

Chips were presented in Material Design. They

芯片在材料设计中介绍。 他们

represent complex entities in small blocks, such as a contact. A chip may contain entities such as a photo, text, rules, an icon, or a contact.
以小块表示复杂实体,例如联系人。 芯片可能包含诸如照片,文字,规则,图标或联系人之类的实体。

MaterialChipsInput is an implementation of that component for Android. The library provides two views : and .

MaterialChipsInput是该组件的Android实现。 该库提供两个视图:

4. (4. )

This library allows to create multiple animations based on points. Take a look — how smooth and beautiful animations you can make quite easily. README contains a lot of examples so you might check it .

该库允许基于点创建多个动画。 看看-您可以轻松轻松地制作出流畅而优美的动画。 README包含许多示例,因此您可以检查。

5. (5. )

Litho is not a library, it is a framework. A really powerful framework to build UI in a declarative way. It was developed by Facebook devs, so even if you do not want to try it, still it is worthy to observe and follow a development process.

Litho不是库,而是框架。 一个以声明方式构建UI的强大框架。 它是由Facebook开发人员开发的,因此即使您不想尝试它,仍然值得观察和遵循开发过程。

Main features include:

主要功能包括:

  • using a declarative API to define UI components. You simply describe the layout for your UI based on a set of immutable inputs and the framework takes care of the rest.

    使用声明性API定义UI组件。 您只需基于一组不可变的输入来描述UI的布局,框架将处理其余的工作。
  • Asynchronous layout: Litho can measure and layout your UI ahead of time without blocking the UI thread.

    异步布局:Litho可以提前测量和布局UI,而不会阻塞UI线程。
  • View flattening: Litho uses for layout and automatically reduces the number of ViewGroups that your UI contains.

    视图展平:Litho使用进行布局,并自动减少UI包含的ViewGroup的数量。

  • Fine-grained recycling: Any component such as a text or image can be recycled and reused anywhere in the UI.

    细粒度的回收:文本或图像之类的任何组件都可以回收,并可以在用户界面的任何位置重复使用。

6. (6. )

Some time ago Google updated Material Design guideline, and introduced bottom navigation bars, as one of several good UI patters to follow in our apps. They also added the implementation to the Design Support Library.

不久前,Google更新了Material Design指南,并引入了底部导航栏,将其作为应用程序中可以遵循的几种不错的UI模式之一。 他们还将实现添加到了设计支持库中。

Adaptable Bottom Navigation can easily replace BottomNavigationView from Support Library. It is implemented in the way how ViewPager and TabLayout work. This is a short explanation from Buffer team:

自适应的底部导航可以轻松替换支持库中的BottomNavigationView 。 它是通过ViewPagerTabLayout工作方式实现的。 这是Buffer团队的简短解释:

As mentioned, when using the Bottom Navigation View from the Android Support Library, there can be a lot of boilerplate code for the switching of views. Because of this, we took inspiration from the TabLayout setupWithViewPager() method and created a custom ViewSwapper component that can be attached to a Bottom Navigation View to simplify the management of view display.
如前所述,在使用Android支持库中的底部导航视图时,可能会有很多样板代码用于视图切换。 因此,我们从TabLayout setupWithViewPager()方法获得了启发,并创建了一个自定义ViewSwapper组件,该组件可以附加到底部导航视图以简化视图显示的管理。

You can read more on Github. There is a quite comprehensive documentation and explanation why it was implemented (tip: clean architecture ? ).

您可以在Github上阅读更多内容。 有一个非常全面的文档和说明为什么实现了它(提示:干净的体系结构?)。

7. (7. )

This library allows you to implement pattern locking mechanism in your app easily and quickly. It is very easy to use and there are plenty of customization options available to change the functionality and look-and-feel of this view to match your needs.
该库使您可以轻松,快速地在应用程序中实现模式锁定机制。 它非常易于使用,并且提供了许多自定义选项,可以更改此视图的功能和外观以满足您的需求。
It also supports RxJava 2 view bindings, so if you are a fan of reactive programming (just like me), you can get a stream of updates as the user draws the pattern.
它还支持RxJava 2视图绑定,因此,如果您喜欢响应式编程(就像我一样),则可以在用户绘制模式时获得更新流。

The README is full of examples, so it is easy to start with the library.

自述文件中有许多示例,因此从库开始很容易。

8. (8. )

This is a library which helps to draw isometric shapes. In my opinion, it is one of the coolest libraries in that list, as it reminds me of game. The library supports drawing multiple shapes, paths and complex structures, like the example below.

这是一个有助于绘制等距形状的库。 我认为,它是该列表中最酷的图书馆之一,因为它让我想起了游戏。 该库支持绘制多个形状,路径和复杂结构,如以下示例所示。

9. (9. )

We can treat this library as a ViewPager extension that encapsulates many features, mainly to provide a unified solution for multi-page switching scenarios.

我们可以将此库视为包含许多功能的ViewPager扩展,主要是为多页面切换方案提供统一的解决方案。

UltraViewPager支持: (UltraViewPager supports:)

  • horizontal scrolling and vertical scrolling,

    水平滚动和垂直滚动
  • multi views in one ViewPager

    一个ViewPager中有多个视图

  • switching views circularly. For example, if there are 3 views to display in a ViewPager, it should switch back to the first view after the third view,

    循环切换视图。 例如,如果ViewPager要显示3个视图,则应在第三个视图之后切换回第一个视图,

  • auto-scrolling feature (implemented timer using Handler),

    自动滚动功能(使用Handler实现的计时器),

  • setting max-height and max-width,

    设置最大高度和最大宽度
  • setting the aspect ratio,

    设置长宽比,
  • indicating the view we are currently (circle and icon),

    指示我们当前的视图(圆圈和图标),
  • built-in two kinds of page transition animations.

    内置两种页面过渡动画。

This library has a good documentation as well.

该库也有很好的文档。

10. (10. )

This library helps to implement UI cards and then switch them with a nice animation.

该库有助于实现UI卡,然后以漂亮的动画进行切换。

11. (11. )

This is a library which we can consider as a DrawerLayout-like ViewGroup, where a drawer is hidden under the content view, and then can be shifted to make the drawer visible. REAMDE is quite comprehensive and it is worthy to check for sure.

这是一个我们可以视为类似于DrawerLayout的ViewGroup ,其中抽屉隐藏在内容视图下,然后可以移动以使抽屉可见。 REAMDE非常全面,值得确定。

12. (12. )

It is just a view where you can type your password. But fancy one!

它只是一个视图,您可以在其中输入密码。 但是看中一个!

13. (13. )

This library allows to represent sound as a gradient colored visualisation.

该库允许将声音表示为渐变色的可视化效果。

14. (14. )

This library helps you to add more meaningful shadow to your images. According to README, it is

该库可帮助您为图像添加更有意义的阴影。 根据自述文件 ,这是

More exquisite shadow effect, used in some special scene to enhance the user experience.
更精致的阴影效果,用于某些特殊场景以增强用户体验。

Also, it is easy to use.

而且,它易于使用。

15. (15. )

This is an efficient Android utility class for drawing regular polygons on a . We can specify:

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

  • Number of sides (≥ 3),

    边数(≥3),
  • center coordinates,

    中心坐标
  • outer radius (center to vertex),

    外半径(中心到顶点),
  • corner rounding radius,

    圆角倒圆半径,
  • polygon rotation,

    多边形旋转
  • fill/stroke .

    填充/描边

16. (16. )

This is a second framework on that list. It is responsible for image compression and it is quite powerful. Also, it

这是该列表上的第二个框架。 它负责图像压缩,功能非常强大。 还有

uses asynchronous thread pool to compress image, and will hand out the result in the main thread when compression is completed.
使用异步线程池压缩图像,并在压缩完成后将结果分发到主线程中。

17. (17. )

This library provides a custom TextView widget, which can create text from particles using a variety of animation effects and configuration properties.

该库提供了一个自定义的TextView小部件,该小部件可以使用各种动画效果和配置属性从粒子创建文本。

18. (18. )

This is a highly configurable widget for image cropping. The library has a modular architecture, which makes it highly configurable. For the info on how to configure CropIwaViewrefer to the .

这是用于图像裁剪的高度可配置的小部件。 该库具有模块化体系结构,因此可以高度配置。 有关如何配置CropIwaView的信息,请参阅上的 。

19. (19. )

This is a thin library to wrap the naked Context in your Android project before passing it to the 3rd-party SDK. It is designed to prevent the 3rd-party SDK from common unwanted behaviors which may harm the user experience of your app.

这是一个精简库,用于在将裸照Context传递给第三方SDK之前将其包装在您的Android项目中。 它旨在防止第三方SDK出现常见的有害行为,这些行为可能会损害应用程序的用户体验。

And here is the explanation:

这里是解释:

Massive launch of processes in other apps (common in 3rd-party push SDKs), causing slow app starting and notable lagging on low to middle-end devices. This behavior has chain reaction effects among apps with similar SDKs, greatly aggravating the overall device performance.

在其他应用程序中大规模启动进程(在第三方推送SDK中很常见),导致应用程序启动缓慢,并且在中低端设备上明显滞后。 此行为在具有相似SDK的应用程序之间产生连锁React影响,从而极大地提高了整体设备性能。

20. (20. )

This library allows you to trace all functions calls order. The project is well documented and you can find detailed manuals how to use it. The only constraint is that, it is written in Chinese, but you can always click Translate to English in your browser and enjoy this great project.

该库允许您跟踪所有函数的调用顺序。 该项目文档齐全,您可以找到有关如何使用它的详细手册。 唯一的限制是,它是用中文编写的,但是您始终可以在浏览器中单击“ 翻译成英语” ,并享受这个出色的项目。

21. (21. )

This is an interesting library. It allows you to create and use special hovering debug tool, to trigger actions defined by you in an application. These actions can be obviously triggered in runtime, so it may be used for instance during feedback writing or testing a phone screen. The library uses Builder pattern. It is easy to use and in README, there is one example of the usage.

这是一个有趣的库。 它允许您创建和使用特殊的悬停调试工具,以触发您在应用程序中定义的操作。 这些动作显然可以在运行时触发,因此可以在例如反馈编写或测试电话屏幕期间使用它们。 该库使用Builder模式。 它易于使用,并且在README中有一个用法示例。

22. (22. )

This a fresh library and still in beta, but it does a really cool thing — it changes your theme dynamically with Rx support! According to the author, this is

这是一个全新的库,仍处于beta版,但它确实很棒:通过Rx支持动态更改您的主题! 根据作者,这是

A fast and easy to use plug-and-play dynamic theme engine. Powered by Rx, for Android apps.
快速,易于使用的即插即用动态主题引擎。 由Rx提供支持,适用于Android应用。

The documentation is really good, comprehensive and definitely worthy to check out.

该文档非常好,全面,绝对值得一试。

23. (23. )

This is an easy custom calendar widget. Main features include:

这是一个简单的自定义日历小部件。 主要功能包括:

  • Custom layout for title,

    自定义标题布局
  • custom layout for date,

    日期的自定义布局,
  • show or hide divider for date,

    显示或隐藏日期分隔线,
  • show or hide overflow date,

    显示或隐藏溢出日期,
  • listen to date’s view be clicked.

    听日期的视图被单击。

The documentation is comprehensive and the library is easy to use.

该文档非常全面,该库易于使用。

24. (24. )

This library provides two rating bars:

该库提供两个等级栏:

  • BaseRatingBar — without any animation,

    BaseRatingBar-没有任何动画,
  • ScaleRatingBar — with a progressive and scale animation.

    ScaleRatingBar —具有渐进式和缩放动画。

You can see them in a gif below:

您可以在下面的gif中看到它们:

25. (25. )

This library is advertised as the simplest navigation library for Android, but you need to check if it is worthy for you to use it. Main features:

该库被宣传为Android上最简单的导航库,但是您需要检查是否值得使用。 主要特点:

  • Navigation is as simple as calling goTo(screen) method,

    导航就像调用goTo(screen)方法一样简单,

  • you get full control of the backstack,

    您可以完全控制Backstack,
  • transitions are automatically handled for you.

    过渡会自动为您处理。

It has comprehensive with all explanations needed.

它具有全面的其中包含所有必要的说明。

26. (26. )

ViewPagerAnimator is a new lightweight, yet powerful ViewPager animation library for Android. it is designed to animate arbitrary values as the user navigates between pages within a ViewPager, and will precisely follow the motion of h[is|er] finger. Although the library itself may be of use to some, the main purpose of publishing this library is to demonstrate some wonderful API subtleties which really come to the fore when using Java 8 extensions which are coming our way soon. Sample projects for both Java 7 and Java 8 are provided.

ViewPagerAnimator是一个新的轻量级但功能强大的Android ViewPager动画库。 它旨在在用户在ViewPager中的页面之间导航时为任意值设置动画,并将精确跟随手指的运动。 尽管该库本身可能对某些人有用,但发布该库的主要目的是演示一些奇妙的API细微之处,这些细微之处在使用即将推出的Java 8扩展时才真正浮出水面。 提供了Java 7和Java 8的示例项目。

It is written by and you can get more info on his .

它由编写,您可以在他的上获取更多信息。

()

This is a library, which facilitates finding heavy methods in your code when your app blocked. It is based on .

这是一个库,当您的应用程序被阻止时,它有助于在代码中查找繁重的方法。 它基于 。

28. (28. )

This is quite cool library. It adds a shadows to your images, but the color of shadow is in a dominant image color.

这是一个很酷的库。 它会在您的图像上添加阴影,但是阴影的颜色是主要的图像颜色。

Documentation is quite poor but I think the code is self-explanatory.

文档非常差,但是我认为代码是不言自明的。

29. (29. )

This is a refresh animation that opens a camera shutter. In my opinion it is really worthy to check, especially in README there is a mathematical analysis, how to achieve this effect!

这是一个刷新动画,可打开相机快门。 我认为这确实值得检查,尤其是在README中有一个数学分析,如何实现这种效果!

30. (30. )

This is an approach to write an Adapter without ViewHolder. Key features include:

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

  • No ViewHolders,

    没有ViewHolders

  • no reflection,

    没有反思,
  • fluent & simple API,

    流畅简单的API,
  • multi-typeable adapter,

    多类型适配器
  • Kotlin support,

    Kotlin支持,
  • Simple DiffUtil support.

    简单的DiffUtil支持。

That’s it. I hope you enjoyed the article! If I didn’t mention any other great libraries released in this Spring, please let me know in the comments below. Let’s keep that list bigger together!

而已。 希望您喜欢这篇文章! 如果我没有提到今年Spring发布的其他出色的库,请在下面的评论中让我知道。 让我们一起扩大清单!

If you like my article, please don’t forget to click ??? to recommend it to others ???.

如果您喜欢我的文章,请不要忘记单击???。 推荐给其他人???。

Also, to be notified about my new articles and stories, follow me on and . You can find me on as well. Cheers!

另外,要了解我的新文章和故事,请在和关注我。 您也可以在上找到我。 干杯!

翻译自:

转载地址:http://atgwd.baihongyu.com/

你可能感兴趣的文章
onNewIntent调用时机
查看>>
MYSQL GTID使用运维介绍(转)
查看>>
04代理,迭代器
查看>>
解决Nginx+PHP-FPM出现502(Bad Gateway)错误问题
查看>>
Java 虚拟机:互斥同步、锁优化及synchronized和volatile
查看>>
2.python的基本数据类型
查看>>
python学习笔记-day10-01-【 类的扩展: 重写父类,新式类与经典的区别】
查看>>
查看端口被占用情况
查看>>
浅谈css(块级元素、行级元素、盒子模型)
查看>>
Ubuntu菜鸟入门(五)—— 一些编程相关工具
查看>>
PHP开源搜索引擎
查看>>
12-FileZilla-响应:550 Permission denied
查看>>
ASP.NET MVC 3 扩展生成 HTML 的 Input 元素
查看>>
LeetCode 234. Palindrome Linked List
查看>>
编译HBase1.0.0-cdh5.4.2版本
查看>>
结构体指针
查看>>
迭代器
查看>>
Food HDU - 4292 (结点容量 拆点) Dinic
查看>>
Ubuntu安装Sun JDK及如何设置默认java JDK
查看>>
[经典算法] 排列组合-N元素集合的M元素子集
查看>>