Android 主流UI开源库整理

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/daimajia/NumberProgressBar

代码家大牛的作品。

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/vikramkakkar/SublimePicker

清爽、漂亮的日历。

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/diogobernardino/WilliamChart

富文本编辑、代码高亮等

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/amlcurran/ShowcaseView

老牌的引导高亮库。

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/rahulrj/YahooNewsOnboarding

https://github.com/sacot41/SCViewPager

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/linroid/FilterMenu

一个转盘式菜单。

https://github.com/ShamylZakariya/FlyoutMenus

一个很酷的弹出菜单。

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/H07000223/FlycoBanner_Master

又一个广告轮播控件。

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/H07000223/FlycoTabLayout

https://github.com/ogaclejapan/SmartTabLayout

https://github.com/romandanylyk/PageIndicatorView

支持多种小圈小点的指示器。

https://github.com/ongakuer/CircleIndicator

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/jfeinstein10/SlidingMenu

老牌的侧滑菜单。

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你所需知道的一切

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,568评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,085评论 2 44
  • 我所从事的曾经辉煌一时的石油化工设计行业似乎步入了一个比较尴尬的境遇。 首先市场环境不好:一方面,日渐提高的环保意...
    焕话成疯阅读 140评论 0 0
  • 这次开始之前,我自己有必要先分析一下思路,再开始研读,到目前为止,我研读这些东西,都没有跟实际工作生活像结合起来,...
    Bog5d阅读 158评论 0 0
  • http://pan.baidu.com/s/1hsxPoS8
    段然丶阅读 127评论 0 0