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. Solr安装入门、查询详解

    Solr安装入门:http://www.importnew.com/12607.html 查询详解:http://www.360doc.com/content/14/0306/18/203871_35 ...

  2. 在standalone模式下运行yarn 0.9.0对HDFS上的数据进行计算

    1.通读http://spark.incubator.apache.org/docs/latest/spark-standalone.html 2.在每台机器上将spark安装到/opt/spark ...

  3. css布局之两列布局

    我们见过两列布局的网站也很多,不过这种两列布局的分为两种:自适应和固定宽度 1.自适应两列布局 <!DOCTYPE html> <html lang="en"&g ...

  4. 《Java中的不可变类》

    //不可变类举例: /* 下面程序试图定义一个不可变类Person类,但=因为Person类包含一个引用类型的成员变量, 且这个引用类是可变类,所以导致Person类也变成了可变类. */ class ...

  5. 判断CAD版本

    使用命令: ACADVER ACADVER = "17.2s (LMS Tech)" (只读) CAD2016 ACADVER = "20.1s (LMS Tech)&q ...

  6. 数据库连接JDBC和数据库连接池C3P0自定义的java封装类

    数据库连接JDBC和数据库连接池C3P0自定义的java封装类 使用以下的包装类都需要自己有JDBC的驱动jar包: 如 mysql-connector-java-5.1.26-bin.jar(5.1 ...

  7. 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作

    不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...

  8. tensorflow3

    参考文献:tensorflow_manual_cn.pdf 一.tensorflow和caffe对应: graph-->.prototxt定义的网络结构 session-->solver( ...

  9. Java 设计一个贷款计算器 简易

    import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; publi ...

  10. 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...