Android主流UI开源库整理(android 开源ui)
ccwgpt 2025-07-08 17:08 20 浏览 0 评论
前言
最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。
标题隐含了两个层面的意思,一个是主流,另一个是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你所需知道的一切。
相关推荐
- 自己动手写Android数据库框架_android开发数据库搭建
-
http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...
- 谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic
-
智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...
- 工信部:着力推动大模型算法、框架等基础性原创性的技术突破
-
工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...
- 乒乓反复纠结“框架不稳定”的三个小误区
-
很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...
- 前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈
-
IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...
- 三种必须掌握的嵌入式开发程序架构
-
前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...
- 怪不得别人3秒就知道软考案例怎么做能50+
-
软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...
- UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透
-
10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...
- 勒索软件转向云原生架构,直指备份基础设施
-
勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...
- ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来
-
在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...
- APP 制作界面设计教程:一步到位_app界面设计模板一套
-
想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...
- MCP 的工作原理:关键组件_mcp部件
-
以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...
- 软件架构_软件架构师工资一般多少
-
软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...
- 不知不觉将手机字体调大!老花眼是因为“老了吗”?
-
现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...
- 8000通用汉字学习系列讲座(第046讲)
-
[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)