这几天刚做完一个项目。。有点空余时间,就想着吧这一两年做的项目中的UI界面用到的一些库整理一下。后来想了一下,既然要整理,就把网上常用的 AndroidUI界面的主流开源库 一起整理一下,方便查看。
这次整理包涵一些常规的按钮、Switch、进度条等控件都是通用控件,因此本文将其囊括,但一些很炫酷但不通用的控件除外。UI不仅包括控件,还包括效果、动画甚至是一些UI辅助类库等。
1、(https://github.com/Trinea/android-open-project) 2、(https://github.com/wasabeef/awesome-android-ui) 3、(http://www.jianshu.com/p/47a4a7b99364) 本文的取材大部分来自这三篇文章,在此感谢文章作者的辛勤付出。更要感谢的是那些无私奉献代码的Opener。
主流UI开源库整理
一下是针对一些热门 控件、开源项目做出一些介绍,有些项目效果看起来也很酷,但通用性很差,显得有些鸡肋,就靠后排列了,甚至介绍都免了。
Button(按钮)
- 很适合做扁平化、纯色的按钮,支持阴影。
- BootStrap风格的按钮,做过前端的同学应该都知道。
- 可以显示进度的按钮,适用于点击按钮后执行一个长时间操作,此时可直接在按钮上显示进度。
- 可以显示进度的按钮。同上。
Switch(开关)
- 各式各样风格的Switch,总有一个适合你。
- BootStrap带有弹性效果的Switch。
编辑框(类EditText)
- Material Design风格的EditText。
- 以标签形式展示的EditText。
- 以标签形式展示的EditText。
- 带错误校验和提示的EditText。
- 为EditText提供撤销、反撤销功能。
文本控件(类TextView)
- 可折叠的TextView,类似朋友圈查看全文。
- 自适应的TextView,在宽高固定的情况下,文字越多,字体越小。
- 支持emoji表情的TextView。
- 支持很多文本特效的TextView,很赞。
进度条(圈)等展示进度相关
- Material Design风格的ProgressBar,支持多种效果。
- 鸿洋大牛的作品,值得拥有。
- 代码家大牛的作品。
- 很实用的进度条,虽然只有一种效果。
- 各式各样创意、风格奇特的进度条。
- 一个圆乎乎的、多彩的进度条。
拖动条(类SeekBar)
- 拖拽时可显示气泡提示的SeekBar。
- Material Design风格的、支持区间选取的SeekBar。
RatingBar
- Material Design风格的RatingBar。
列表、网格、瀑布流控件
-
RecyclerView
这个就不用解释了,使用请参考 RecyclerView 使用完全解析 体验艺术般的控件。 -
对于列表、网格的拖拽排序、侧滑删除,推荐使用RecyclerView来做,可参考。
对话框(Dialog、BottomSheet等)
- 一套强大的Dialog集合,提供了类似BottomSheet的效果。
- 功能强大、支持各式各样风格的Dialog。
- 一套Material Design风格的对话框。
- 实现对话框的另一种选择。
日历、时间选择
- 非常不错的日历、时间选择控件。
- 清爽、漂亮的日历。
- Material Design风格的日历、时间选择器。
- 效果和MaterialDateTimePicker几乎一样,不知道是不是抄的,提供了日历、时间区间的选择。
- 基于ListView,效果类似原生的日历。
- 来自square的日历选择器。
分类筛选
- 一个实用的多条件筛选菜单。
角标、徽章
- 用TextView实现的标签效果,值得一试。
- 给特定的View添加角标效果。
- 用来生成带有角标的图标。
图表
- 支持数十种图表,总有一个适合你。
- 功能强大、支持各式各样的图表控件。
- 强大、易于使用的图表控件。
富文本编辑、代码高亮等
- 功能强大的富文本编辑器。
- 轻量级的富文本编辑器。
- 强大的代码高亮控件,支持多种语言。
图片展示(类ImageView)
- 强大的、人尽皆知的图片浏览控件。
- 用来显示圆角图片的ImageView。
- 将图片按照自定义的形状显示。
- 以Drawable的形式显示字符,类似平时见到的“字符”头像。
- 能实现简单的图像处理的ImageView。
标签组控件(类FlowLayout)
- 基于RecyclerView实现的标签控件。
- 鸿洋大牛的作品,支持单选、多选。
App新手引导、高亮
- 老牌的引导高亮库。
- 一个引导高亮的库,来自鸿洋。
- 又一个引导高亮库。
- 非常酷的引导页效果。
-
侧边栏索引、固定Header
- 固定Header的ListView。
- 老牌的、固定Header的ListView。
- 固定Header的RecyclerView。支持横向、纵向。
菜单(类Menu,但不包括侧滑菜单)
- 大名鼎鼎的fab。
- 一个转盘式菜单。
- 一个很酷的弹出菜单。
- 弧形菜单,支持多种效果。
- 炫酷的弧形菜单,支持自定义动画。
通用下拉刷新、加载更多
- 廖祜秋大牛的下拉刷新框架,支持对任意View做下拉刷新,也仅限于做下拉刷新。
-
SwipeRefreshLayout
官方的、Material Design风格的下拉刷新框架。 - 老牌的下拉刷新框架,已废弃。
-
那些只能对特定View做下拉刷新、上拉加载的非通用框架就不贴了。
广告轮播、垂直公告
- 基于ViewPager的广告轮播控件,支持循环滚动。
- 又一个广告轮播控件。
- 基于ViewFlipper的垂直公告控件。
滑动返回(类SwipeBack)
- 老牌的滑动返回框架,需要结合透明主题,Activity不宜过多,否则卡顿严重。
- 支持滑动返回的Fragment。
- 另一个滑动返回框架,无需设置透明主题。
指示器、Tab
- 强大、可定制、易扩展的 ViewPager 指示器框架。
- 支持多种小圈小点的指示器。
- TabLayout 总所周知的Tab框架,唯一的优势是来自官方。
动画相关库
- 一系列RecyclerView Item动画合集。
- 一系列ListView Item动画合集。已废弃,推荐使用RecyclerView。
- 老牌的View动画合集。来自代码家
- 又一个ReyclerView Item动画合集。
- 一系列Material Design风格的动画合集。
- 一系列的PageTransformer合集。
- 动画兼容库,用来在2.3及以下系统上使用属性动画,现已废弃。
侧滑菜单(类SlidingMenu)
-
DrawerLayout
官方的侧滑菜单,功能强大。 - 老牌的侧滑菜单。
- 一般用来实现View内部的侧滑。
辅助类库
-
ItemTouchHelper
用来实现RecyclerView侧滑删除、拖拽排序的工具类。 - 让RecyclerView具备类似ViewPager的效果。
-
ViewDragHelper
处理View拖拽的神器,使用参考Android ViewDragHelper完全解析 自定义ViewGroup神器。 -
Scroller
用于实现View的平滑滚动,使用参考Android Scroller完全解析,关于Scroller你所需知道的一切。