Android主流UI开源库整理(转载)
http://www.jianshu.com/p/47a4a7b99364
标题隐含了两个层面的意思,一个是主流,另一个是UI。主流既通用,一些常规的按钮、Switch、进度条等控件都是通用控件,因此本文将其囊括,但一些很炫酷但不通用的控件除外。UI不仅包括控件,还包括效果、动画甚至是一些UI辅助类库等。
网上有不少对开源项目进行整理的文章,以下两个最为知名:
- https://github.com/Trinea/android-open-project 
 囊括了非常多的、各式各样的开源项目,包括但不限于UI、工具类库等。
- https://github.com/wasabeef/awesome-android-ui 
 囊括了非常多的、各种类型的UI开源库。
本文的取材大部分来自这两篇文章,在此感谢文章作者的辛勤付出。更要感谢的是那些无私奉献代码的Opener。
主流UI分类
既然是整理,那先得有一个分类,分类如下:
- 按钮 
- Switch(开关) 
- 编辑框(类EditText) 
- 文本控件(类TextView) 
- 进度条(圈)等展示进度相关 
- 拖动条(类SeekBar) 
- RatingBar 
- 列表、网格、瀑布流控件 
- 对话框(Dialog、BottomSheet等) 
- 日历、时间选择 
- 分类筛选 
- 角标、徽章 
- 图表 
- 富文本编辑、代码高亮等 
- 图片展示(类ImageView) 
- 标签组控件(类FlowLayout) 
- App新手引导、高亮 
- 侧边栏索引、固定Header 
- 菜单(类Menu,但不包括侧滑菜单) 
- 通用下拉刷新、加载更多 
- 广告轮播、垂直公告 
- 滑动返回(类SwipeBack) 
- 指示器、Tab 
- 动画相关库 
- 侧滑菜单(类SlidingMenu) 
- 辅助类库 
目前想到的通用控件种类就这么多,如有遗漏,欢迎指正哈。
主流UI开源库
以下是对上述分类的一一展开。我会列出每个分类下的热门开源项目,并适当的给出介绍。这些项目按照我所认为的通用性降序排列,排在越前面的说明通用性、实用性越高,但并不代表star就越多。有些项目有几千个star,效果看起来也很酷,但通用性很差,显得有些鸡肋,就靠后排列了,甚至介绍都免了。
按钮
- https://github.com/hoang8f/android-flat-button 
 很适合做扁平化、纯色的按钮,支持阴影。
- https://github.com/Bearded-Hen/Android-Bootstrap 
 BootStrap风格的按钮,做过前端的同学应该都知道。
- https://github.com/dmytrodanylyk/circular-progress-button 
 可以显示进度的按钮,适用于点击按钮后执行一个长时间操作,此时可直接在按钮上显示进度。
- https://github.com/dmytrodanylyk/android-process-button 
 可以显示进度的按钮。同上。
Switch(开关)
- https://github.com/kyleduo/SwitchButton 
 各式各样风格的Switch,总有一个适合你。
- https://github.com/Nightonke/JellyToggleButton 
 带有弹性效果的Switch。
编辑框(类EditText)
- https://github.com/rengwuxian/MaterialEditText 
 Material Design风格的EditText。
- https://github.com/mabbas007/TagsEditText 
 以标签形式展示的EditText。
- https://github.com/g707175425/CloudEditText 
 以标签形式展示的EditText。
- https://github.com/vekexasia/android-edittext-validator 
 带错误校验和提示的EditText。
- https://github.com/qinci/AndroidEdit 
 为EditText提供撤销、反撤销功能。
文本控件(类TextView)
- https://github.com/Manabu-GT/ExpandableTextView 
 可折叠的TextView,类似朋友圈查看全文。
- https://github.com/grantland/android-autofittextview 
 自适应的TextView,在宽高固定的情况下,文字越多,字体越小。
- https://github.com/rockerhieu/emojicon 
 支持emoji表情的TextView。
- https://github.com/hanks-zyh/HTextView 
 支持很多文本特效的TextView,很赞。
进度条(圈)等展示进度相关
- https://github.com/DreaminginCodeZH/MaterialProgressBar 
 Material Design风格的ProgressBar,支持多种效果。
- https://github.com/hongyangAndroid/Android-ProgressBarWidthNumber 
 鸿洋大牛的作品,值得拥有。
- https://github.com/lopspower/CircularProgressBar 
 很实用的进度条,虽然只有一种效果。
- https://github.com/dinuscxj/LoadingDrawable 
 各式各样创意、风格奇特的进度条。
- https://github.com/akexorcist/Android-RoundCornerProgressBar 
 一个圆乎乎的、多彩的进度条。
拖动条(类SeekBar)
- https://github.com/AnderWeb/discreteSeekBar 
 拖拽时可显示气泡提示的SeekBar。
- https://github.com/oli107/material-range-bar 
 Material Design风格的、支持区间选取的SeekBar。
RatingBar
- https://github.com/DreaminginCodeZH/MaterialRatingBar
 Material Design风格的RatingBar。
列表、网格、瀑布流控件
- RecyclerView 
 这个就不用解释了,使用请参考Android RecyclerView 使用完全解析 体验艺术般的控件。
- 对于列表、网格的拖拽排序、侧滑删除,推荐使用RecyclerView来做,可参考https://github.com/YoKeyword/ItemTouchHelperDemo。 
对话框(Dialog、BottomSheet等)
- https://github.com/H07000223/FlycoDialog_Master 
 一套强大的Dialog集合,提供了类似BottomSheet的效果。
- https://github.com/afollestad/material-dialogs 
 功能强大、支持各式各样风格的Dialog。
- https://github.com/drakeet/MaterialDialog 
 一套Material Design风格的对话框。
- https://github.com/orhanobut/dialogplus 
 实现对话框的另一种选择。
日历、时间选择
- https://github.com/philliphsu/BottomSheetPickers 
 非常不错的日历、时间选择控件。
- https://github.com/wdullaer/MaterialDateTimePicker 
 Material Design风格的日历、时间选择器。
- https://github.com/borax12/MaterialDateRangePicker 
 效果和MaterialDateTimePicker几乎一样,不知道是不是抄的,提供了日历、时间区间的选择。
- https://github.com/traex/CalendarListview 
 基于ListView,效果类似原生Android的日历。
- https://github.com/square/android-times-square 
 来自square的日历选择器。
分类筛选
- https://github.com/dongjunkun/DropDownMenu
 一个实用的多条件筛选菜单。
角标、徽章
- https://github.com/HeZaiJin/SlantedTextView 
 用TextView实现的标签效果,值得一试。
- https://github.com/stefanjauker/BadgeView 
 给特定的View添加角标效果。
- https://github.com/leolin310148/ShortcutBadger 
 用来生成带有角标的图标。
图表
- https://github.com/xcltapestry/XCL-Charts 
 支持数十种图表,总有一个适合你。
- https://github.com/lecho/hellocharts-android 
 功能强大、支持各式各样的图表控件。
- https://github.com/PhilJay/MPAndroidChart 
 强大、易于使用的图表控件。
富文本编辑、代码高亮等
- https://github.com/wasabeef/richeditor-android 
 功能强大的富文本编辑器。
- https://github.com/mthli/Knife 
 轻量级的富文本编辑器。
- https://github.com/Thereisnospon/CodeView 
 强大的代码高亮控件,支持多种语言。
图片展示(类ImageView)
- https://github.com/chrisbanes/PhotoView 
 强大的、人尽皆知的图片浏览控件。
- https://github.com/hdodenhof/CircleImageView 
 用来显示圆角图片的ImageView。
- https://github.com/siyamed/android-shape-imageview 
 将图片按照自定义的形状显示。
- https://github.com/amulyakhare/TextDrawable 
 以Drawable的形式显示字符,类似平时见到的“字符”头像。
- https://github.com/chengdazhi/StyleImageView 
 能实现简单的图像处理的ImageView。
标签组控件(类FlowLayout)
- https://github.com/BelooS/ChipsLayoutManager 
 基于RecyclerView实现的标签控件。
- https://github.com/hongyangAndroid/FlowLayout 
 鸿洋大牛的作品,支持单选、多选。
App新手引导、高亮
- https://github.com/KeepSafe/TapTargetView 
 Material Design风格的高亮库。
- https://github.com/hongyangAndroid/Highlight 
 一个引导高亮的库,来自鸿洋。
- https://github.com/jaydenxiao2016/HighLightGuideView 
 又一个引导高亮库。
- https://github.com/matrixxun/ProductTour 
 非常酷的引导页效果。
- https://github.com/paolorotolo/AppIntro 
 一个比较炫酷的引导页框架。
侧边栏索引、固定Header
- https://github.com/beworker/pinned-section-listview 
 固定Header的ListView。
- https://github.com/emilsjolander/StickyListHeaders 
 老牌的、固定Header的ListView。
- https://github.com/timehop/sticky-headers-recyclerview 
 固定Header的RecyclerView。支持横向、纵向。
菜单(类Menu,但不包括侧滑菜单)
- https://github.com/futuresimple/android-floating-action-button 
 大名鼎鼎的fab。
- https://github.com/ogaclejapan/ArcLayout 
 弧形菜单,支持多种效果。
- https://github.com/oguzbilgener/CircularFloatingActionMenu 
 炫酷的弧形菜单,支持自定义动画。
通用下拉刷新、加载更多
- https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh 
 廖祜秋大牛的下拉刷新框架,支持对任意View做下拉刷新,也仅限于做下拉刷新。
- SwipeRefreshLayout 
 官方的、Material Design风格的下拉刷新框架。
- https://github.com/chrisbanes/Android-PullToRefresh 
 老牌的下拉刷新框架,已废弃。
- 那些只能对特定View做下拉刷新、上拉加载的非通用框架就不贴了。 
广告轮播、垂直公告
- https://github.com/saiwu-bigkoo/Android-ConvenientBanner 
 基于ViewPager的广告轮播控件,支持循环滚动。
- https://github.com/sfsheng0322/MarqueeView 
 基于ViewFlipper的垂直公告控件。
滑动返回(类SwipeBack)
- https://github.com/ikew0ng/SwipeBackLayout 
 老牌的滑动返回框架,需要结合透明主题,Activity不宜过多,否则卡顿严重。
- https://github.com/YoKeyword/SwipeBackFragment 
 支持滑动返回的Fragment。
- https://github.com/XBeats/and_swipeback 
 另一个滑动返回框架,无需设置透明主题。
指示器、Tab
- https://github.com/hackware1993/MagicIndicator 
 强大、可定制、易扩展的 ViewPager 指示器框架。
- https://github.com/romandanylyk/PageIndicatorView 
 支持多种小圈小点的指示器。
- TabLayout 
 总所周知的Tab框架,唯一的优势是来自官方。
动画相关库
- https://github.com/wasabeef/recyclerview-animators 
 一系列RecyclerView Item动画合集。
- https://github.com/nhaarman/ListViewAnimations 
 一系列ListView Item动画合集。已废弃,推荐使用RecyclerView。
- https://github.com/daimajia/AndroidViewAnimations 
 老牌的View动画合集。来自代码家
- https://github.com/gabrielemariotti/RecyclerViewItemAnimators 
 又一个ReyclerView Item动画合集。
- https://github.com/lgvalle/Material-Animations 
 一系列Material Design风格的动画合集。
- https://github.com/jfeinstein10/JazzyViewPager 
 一系列的PageTransformer合集。
- https://github.com/JakeWharton/NineOldAndroids 
 动画兼容库,用来在2.3及以下系统上使用属性动画,现已废弃。
侧滑菜单(类SlidingMenu)
- DrawerLayout 
 官方的侧滑菜单,功能强大。
- https://github.com/daimajia/AndroidSwipeLayout 
 一般用来实现View内部的侧滑。
辅助类库
- ItemTouchHelper 
 用来实现RecyclerView侧滑删除、拖拽排序的工具类。
- https://github.com/rubensousa/RecyclerViewSnap 
 让RecyclerView具备类似ViewPager的效果。
- ViewDragHelper 
 处理View拖拽的神器,使用参考Android ViewDragHelper完全解析 自定义ViewGroup神器。
- Scroller 
 用于实现View的平滑滚动,使用参考Android Scroller完全解析,关于Scroller你所需知道的一切。
原文链接:http://www.jianshu.com/p/47a4a7b99364
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
Android主流UI开源库整理(转载)的更多相关文章
- Android(常用)主流UI开源库整理
		这几天刚做完一个项目..有点空余时间,就想着吧这一两年做的项目中的UI界面用到的一些库整理一下.后来想了一下,既然要整理,就把网上常用的 AndroidUI界面的主流开源库 一起整理一下,方便查看. ... 
- android UI开源库
		. ActionBarSherlock ActionBarSherlock是一个独立的Android设计库,可以让Android 2.x的系统也能使用ActionBar.此 外,ActionBarSh ... 
- Android强大的开源库与系统架构工具
		后来加上的,因为太强大了,android上百个可立即使用的开源库介绍:https://github.com/Trinea/android-open-project 一款功能强大且实用的开发工具可以为开 ... 
- Android  使用SwipeActionAdapter开源库实现简单列表的左右滑动操作
		我们做listview左右滑动操作时,一般中情况下,都是像QQ那样,左滑弹出操作菜单(删除.编辑),然后选择菜单操作: 这样的效果不可谓不好,算是非常经典. 另外,有少数的APP,尤其是任务管理类的A ... 
- Android Library 发布开源库 JCenter & JitPack 攻略
		对于Android 的开源库,一般通过 JCenter 或者 JitPack 发布开源.两种方式均可~ 当你造了一个好玩有用的东西想要分享给大家时,开源出来便是一种好方式~ 一. 上传开源库到 JCe ... 
- android WebP解析开源库-支持高清无损
		在我们的项目中需要支持WebP高清无损图片,推荐一个我们已经使用的解析开源库给大家:https://github.com/keshuangjie/WebpExample/tree/master/lib ... 
- Android 优秀的开源框架整理
		第一部分:系统架构 thinkAndroid https://github.com/white-cat/ThinkAndroid ThinkAndroid是一个免费的开源的.简易的.遵循Apache2 ... 
- Android 开发:开源库Speex支持arm64的动态库文件
		随着处理器制造工艺的不断进步,和Android系统的不断发展,最近出了arm64-v8a的架构,由于项目中用到了speex的第三方语音编解码的动态库,其他架构的处理器暂不用说,一切正常,唯独到arm6 ... 
- Android常用优秀开源框架整理
		前言 AOSF:全称为Android Open Source Framework,即Android优秀开源框架汇总.包含:网络请求okhttp,图片下载glide,数据库greenDAO,链式框架Rx ... 
随机推荐
- 怎样将Sqlserver数据库转成mysql数据库
			手上有一个网站之前是用asp.net做的,所使用的数据库是sqlserver,现在打算用PHP+MYSQL架构.因原来的站点有一定排名,直接改版的话,会导致产生很多错误页,网站排名和收录结果要恢复过来 ... 
- Android RecyclerView 使用完全解析
			概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我 ... 
- python 语法常用 lambda
			Python中lambda表达式学习 http://blog.csdn.net/imzoer/article/details/8667176 
- js中的offsetWidth岁的BUG
			---恢复内容开始--- 在js使用offsetWidth来操作控件的运动是会遇到: var oDiv = document.getElementById('div1') oDiv.style.wid ... 
- OSI模型
			1.物理层 •设备间接收或发送比特流 •说明电压.线速和线缆等 例子: EIA/TIA-232 V.35 2. 数据链路层 •将比特组合成字节进而组合成帧 •用MAC地址访问介质 •错误发现但不能纠正 ... 
- mysql、pymysql、SQLAlchemy
			1.MySQL介绍 http://www.cnblogs.com/wupeiqi/articles/5699254.html,基础操作参见此文章,此处不赘述. 安装:yum install mysql ... 
- github常见操作和常见错误!错误提示:fatal: remote origin already exists.
			如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ... 
- [Spring] - Property注入
			使用Spring注入Properies文件方法: 1.src中新建一个settings.properties文件,内容如下: db_driverClassName=com.mysql.jdbc.Dri ... 
- HTTP请求 GET POST 网络编程实现(转)
			尊重原作者收集的资料,复制粘贴只为了避免作者文章出处哪天抽风了访问不了了导致资料消失. 原文地址 http://bbs.neworigin.net/forum.php?mod=viewthread&a ... 
- 区间更新 zoj3911
			哎,没什么坑点,一个简单的区间更新题,但是改了好几天没改对,最终还是过了~~发个纪念下 泪奔... #include<cstdio>#include <iostream>#in ... 
