http://www.jianshu.com/p/47a4a7b99364

标题隐含了两个层面的意思,一个是主流,另一个是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,效果看起来也很酷,但通用性很差,显得有些鸡肋,就靠后排列了,甚至介绍都免了。

按钮

Switch(开关)

编辑框(类EditText)

文本控件(类TextView)

进度条(圈)等展示进度相关

拖动条(类SeekBar)

RatingBar

列表、网格、瀑布流控件

对话框(Dialog、BottomSheet等)

日历、时间选择

分类筛选

角标、徽章

图表

富文本编辑、代码高亮等

图片展示(类ImageView)

标签组控件(类FlowLayout)

App新手引导、高亮

侧边栏索引、固定Header

菜单(类Menu,但不包括侧滑菜单)

通用下拉刷新、加载更多

广告轮播、垂直公告

滑动返回(类SwipeBack)

指示器、Tab

动画相关库

侧滑菜单(类SlidingMenu)

辅助类库

文/hackware(简书作者)
原文链接:http://www.jianshu.com/p/47a4a7b99364
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

Android主流UI开源库整理(转载)的更多相关文章

  1. Android(常用)主流UI开源库整理

    这几天刚做完一个项目..有点空余时间,就想着吧这一两年做的项目中的UI界面用到的一些库整理一下.后来想了一下,既然要整理,就把网上常用的 AndroidUI界面的主流开源库 一起整理一下,方便查看. ...

  2. android UI开源库

    . ActionBarSherlock ActionBarSherlock是一个独立的Android设计库,可以让Android 2.x的系统也能使用ActionBar.此 外,ActionBarSh ...

  3. Android强大的开源库与系统架构工具

    后来加上的,因为太强大了,android上百个可立即使用的开源库介绍:https://github.com/Trinea/android-open-project 一款功能强大且实用的开发工具可以为开 ...

  4. Android 使用SwipeActionAdapter开源库实现简单列表的左右滑动操作

    我们做listview左右滑动操作时,一般中情况下,都是像QQ那样,左滑弹出操作菜单(删除.编辑),然后选择菜单操作: 这样的效果不可谓不好,算是非常经典. 另外,有少数的APP,尤其是任务管理类的A ...

  5. Android Library 发布开源库 JCenter & JitPack 攻略

    对于Android 的开源库,一般通过 JCenter 或者 JitPack 发布开源.两种方式均可~ 当你造了一个好玩有用的东西想要分享给大家时,开源出来便是一种好方式~ 一. 上传开源库到 JCe ...

  6. android WebP解析开源库-支持高清无损

    在我们的项目中需要支持WebP高清无损图片,推荐一个我们已经使用的解析开源库给大家:https://github.com/keshuangjie/WebpExample/tree/master/lib ...

  7. Android 优秀的开源框架整理

    第一部分:系统架构 thinkAndroid https://github.com/white-cat/ThinkAndroid ThinkAndroid是一个免费的开源的.简易的.遵循Apache2 ...

  8. Android 开发:开源库Speex支持arm64的动态库文件

    随着处理器制造工艺的不断进步,和Android系统的不断发展,最近出了arm64-v8a的架构,由于项目中用到了speex的第三方语音编解码的动态库,其他架构的处理器暂不用说,一切正常,唯独到arm6 ...

  9. Android常用优秀开源框架整理

    前言 AOSF:全称为Android Open Source Framework,即Android优秀开源框架汇总.包含:网络请求okhttp,图片下载glide,数据库greenDAO,链式框架Rx ...

随机推荐

  1. 一张图让你看懂各开源License[转]

    你是否遇到过开源License,精炼而又晦涩的文字通常要读半天才能理解,而且大多数License差别不大,容易混淆.下面这张图让你段时间迅速掌握各种开源的License. 图片来源:阮一峰的博客. f ...

  2. C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一)

    咨询 请加 QQ::QQ群: 在微信里面,非认证的公众号账号,只能通过在微信回复菜单单击等事件获取openid,但是认证的公众账号(之前认证的订阅号是不可以的,现在新开放了政府媒体机构的认证订阅号)可 ...

  3. (BFS)poj2935-Basic Wall Maze

    题目地址 题目与最基本的BFS迷宫的区别就是有一些障碍,可以通过建立三维数组,标记某个地方有障碍不能走.另一个点是输出路径,对此建立结构体时要建立一个pre变量,指向前一个的下标.这样回溯(方法十分经 ...

  4. sql float 转换为 nvarchar

    INSERT INTO CC11 SELECT convert(nvarchar(30),convert(decimal(11,0),PCTID)),convert(nvarchar(30),conv ...

  5. 高性能Mysql

      高性能 高可用 易伸缩 安全 高并发 定义 吞吐量(单位时间内多少次查询) MTBF(平均失效时间) MTTR(平均恢复时间)     同时工作的线程数或连接数 系统       事务 表锁.行级 ...

  6. java 内存机制简介

    java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址.java中对象是采用new或者反射的方法创 建的,这些对象的创建都是在堆中分配,所 ...

  7. C++中不同数据类型的互相转换

    1.string --> char *   char * p = (char*)str.c_str(); 2.char * -->string   char *p = "aaa& ...

  8. java eclipse环境搭建环境

    开发环境搭建: JDK的安装 http://www.oracle.com/technetwork/java/javase/downloads 下载文件:jdk-8u101-windows-x64.ex ...

  9. get到的新技能

    1.重拾选择器 (一)类选择器与id选择器的区别 W3C标准这样规定的,在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class. 这样,一般网站分为头,体,脚部分,因为考虑到它们 ...

  10. Mybatis-动态 SQL

    MyBatis 的强大特性之一便是它的动态 SQL. 如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省 ...