百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Android主流UI开源库整理(android 开源ui)

ccwgpt 2025-07-08 17:08 1 浏览 0 评论

前言

最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。

标题隐含了两个层面的意思,一个是主流,另一个是UI。主流既通用,一些常规的按钮、Switch、进度条等控件都是通用控件,因此本文将其囊括,但一些很炫酷但不通用的控件除外。UI不仅包括控件,还包括效果、动画甚至是一些UI辅助类库等。

网上有不少对开源项目进行整理的文章,以下两个最为知名:

  1. https://github.com/Trinea/android-open-project 囊括了非常多的、各式各样的开源项目,包括但不限于UI、工具类库等。
  2. https://github.com/wasabeef/awesome-android-ui 囊括了非常多的、各种类型的UI开源库。

本文的取材大部分来自这两篇文章,在此感谢文章作者的辛勤付出。更要感谢的是那些无私奉献代码的Opener。

主流UI分类


既然是整理,那先得有一个分类,分类如下:

  1. 按钮
  2. Switch(开关)
  3. 编辑框(类EditText)
  4. 文本控件(类TextView)
  5. 进度条(圈)等展示进度相关
  6. 拖动条(类SeekBar)
  7. RatingBar
  8. 列表、网格、瀑布流控件
  9. 对话框(Dialog、BottomSheet等)
  10. 日历、时间选择
  11. 分类筛选
  12. 角标、徽章
  13. 图表
  14. 富文本编辑、代码高亮等
  15. 图片展示(类ImageView)
  16. 标签组控件(类FlowLayout)
  17. App新手引导、高亮
  18. 侧边栏索引、固定Header
  19. 菜单(类Menu,但不包括侧滑菜单)
  20. 通用下拉刷新、加载更多
  21. 广告轮播、垂直公告
  22. 滑动返回(类SwipeBack)
  23. 指示器、Tab
  24. 动画相关库
  25. 侧滑菜单(类SlidingMenu)
  26. 辅助类库

目前想到的通用控件种类就这么多,如有遗漏,欢迎指正哈。

主流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开发基础入门(一):UI与基础控件

Android基础入门前言:从今天开始,我们开始分享Android客户端开发的基础知识。一、工具指南工欲善其事必先利其器,我们首先介绍一下开发Android常用的集成开发环境。小雨在上大学期间,开发a...

谷歌Material Design质感设计UI开发框架

谷歌MaterialDesign质感设计是一个新的用户界面设计概念,即将到来的Android版本称为“AndroidL”中会使用这种设计语言。在这篇文章中,我们收集出最新的和最好的Android...

Android主流UI开源库整理(android 开源ui)

前言最近老大让我整理一份Android主流UI开源库的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...

系统工具类App的开发框架(系统开发方法工具)

系统工具类App的开发框架选择,很大程度上取决于目标平台(Android、iOS或两者兼有),以及对性能、系统级访问深度和开发效率的需求。由于这类App常常需要深入操作系统底层,因此原生开发框架通常是...

2025年vue前端框架前瞻(vue前端开发规范手册)

Vue是一个轻量且灵活的JavaScript框架,广受开发者喜爱,因其简单易用的API和组件化的开发方式而闻名。Vite是一个现代化的前端构建工具,以其极快的开发服务器启动速度和热模块替换...

前端流行框架Vue3教程:28. Vue应用

28.Vue应用应用实例每个Vue应用都是通过createApp函数创建一个新的应用实例main.jsimport{createApp}from'vue'import...

2024 Vue 最全的生态工具组合推荐指南

Vue3虽然Vue2很多项目在用,但是官方已经宣布不再维护Vue2,所以新项目肯定首选Vue3来进行开发,组合式API开发起来比选项式API方便多了,而且Vue3的响应式实现也更...

基于 Vue3 Element Plus 的中后台管理系统模板

PureAdmin是一个开源的前端中后台管理系统模板,基于Vue3、Element-Plus,支持移动端、国际化、多主题设置,支持前端静态路由、后端动态路由配置,旨在为开发人员提供一个易于使用、高...

重磅!滴滴开源全新跨端小程序框架,基于 Vue 3!

最近,滴滴出行开源了自主研发的全新轻量级跨端小程序框架——星河(Dimina),为开发者提供了“一次开发,多端运行”的高性能、低门槛解决方案。下面就来一览Dimina的魅力!什么是星河(Dim...

【推荐】一款基于 Vue + .NET 8 开源、免费、功能强大的快速开发框架

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍Vue.NetCore是一款集高效、灵活、易于扩展于一体的快速开发框架(基于Vue提供Vue2/Vue...

搭建Trae+Vue3的AI开发环境(vue ide 开发工具)

从2024年2025年,不断的有各种AI工具会在自媒体中火起来,号称各种效率王炸,而在AI是否会替代打工人的话题中,程序员又首当其冲。作为一个后端开发,这篇文章基于Trae工具,来创建和运行一个简单的...

一款基于 Vue + .NET 8 开源、免费、功能强大的快速开发框架

项目介绍Vue.NetCore是一款集高效、灵活、易于扩展于一体的快速开发框架(基于Vue提供Vue2/Vue3版本和.NET8前后端分离),适用于多种应用场景。通过前后端分离的设计、强大的...

盘点一下这些年PHP在桌面应用方面的解决方案

今天作者给大家盘点一下近些年PHP在实现桌面客户端方面的项目。PHP-GTKPHP-GTK是2001年3月创立,是PHP的一个扩展,实现了与GTK+的绑定,提供面向对象的接口,极大地简化了客户端跨平台...

PHP+Uniapp校园圈子系统校园论坛小程序开发:踩坑与优化经验分享

一、系统架构与技术选型1.架构设计采用前后端分离架构,前端使用Uniapp实现跨端开发(支持微信小程序、H5、App),后端基于PHP(推荐ThinkPHP或Laravel框架)提供RESTful...

智能匹配+安全护航:PHP代练系统护航小程序如何提升用户信任?

在代练行业中,用户信任是平台发展的核心要素。基于PHP后端与uni-app跨端框架的代练系统,通过智能匹配与安全护航两大核心策略,能够有效提升用户信任,构建健康可持续的代练生态。以下从技术实现与用户体...

取消回复欢迎 发表评论: