第一部分:工具库
依赖注入库
dagger:Square公司的明星项目,已被google官方采用
- 依赖注入,适用于 Android 和 Java
- 在android平台,特别适合mvp架构
- 官网
- Dagger 源码解析
- Dagger2使用
- MVP+Dagger2+Retrofit实现更清晰的架构
AndroidAnnotations(Code Diet)
- 目前我正在使用的项目,不是很方便,每次要编译时生成Activity的子类_Activity
- 特点:(1) 依赖注入:包括 view,extras,系统服务,资源等等
(2) 简单的线程模型,通过 annotation 表示方法运行在 ui 线程还是后台线程
(3) 事件绑定:通过 annotation 表示 view 的响应事件,不用在写内部类
(4) REST 客户端:定义客户端接口,自动生成 REST 请求的实现
(5) 没有你想象的复杂:AndroidAnnotations 只是在在编译时生成相应子类
(6) 不影响应用性能:仅 50kb,在编译时完成,不会对运行时有性能影响。
其他:与 roboguice 的比较:roboguice 通过运行时读取 annotations 进行反射,所以可能影响应用性能,而 AndroidAnnotations 在编译时生成子类,所以对性能没有影响
图片缓存库
- picasso
- fresco
- Glide
对比
- fresco facebook的明星项目,5.0以下特别流畅,但是包大。亮点是渐进式显示图片
- picasso Square的明星项目,跟okhttp结合最好用,包最小
- Glide是google出品的图片缓存框架
总结,我选择使用Picasso,因为简单易上手。
gradle-retrolambda:java7兼容lambda库
rx-android:感受响应式编程魅力
Retrofit2.0:最热门的restfull规范网络请求框架
EventBus:发布 / 订阅的事件总线
高版本向低版本兼容库
nineoldandroids:JakeWharton大神的项目
第二部分 ui库
刷新ui
BGARefreshLayout-Android:多种下拉刷新效果、上拉加载更多、可配置自定义头部广告位
- 目前我正在使用的下拉刷新,上拉加载
Android-PullToRefresh
- 目前使用最广泛的强大的拉动刷新开源项目,强烈推荐使用
- 支持各种控件下拉刷新,ListView、ViewPager、WebView、ExpandableListView、GridView、ScrollView、Horizontal ScrollView、Fragment 上下左右拉动刷新
- APP 示例:新浪微博各个页面
android-Ultra-Pull-To-Refresh
- star数目4991的项目,跟上一个刷新控件媲美
- 这个继承于 ViewGroup 可以包含任何 View。功能甚至比 SwipeRefreshLayout 强大。使用起来非常简单。良好的设计,如果你想定制自己的 UI 样式,非常简单,就像给 ListView 加一个 Header View 那么简单。支持 API LEVEL >= 8
- android-Ultra-Pull-To-Refresh 源码解析
Material Design UI
material-dialogs
- 各种material风格的dialog。 漂亮的的、易于使用的和可定制的Dialog API,你能够使用Material designed风格的Dialog到API 8
- 目前正在使用,文档很全面。
仿ios的ui
Android-PickerView:仿ios的pickview库
仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果
ViewPager 、Gallery轮播图 旋转木马效果
Android-ConvenientBanner:banner轮播图
- 目前我正在使用的控件,没有解决每次imageview重新加载的问题,导致大的图片会先出现空白。
LoopRotarySwitch:旋转木马
- 目前正在使用,适用于3-4个图片,支持无线滚动。
优点 - 适用于Activity和Fragment
- 可定制大小,可监听事件,可调整旋转滚动半径
CarouselViewProject:画廊效果
- 不是很灵活,不支持无限滚动
3d旋转木马效果
以下三个3d旋转木马效果,都来自于这篇文章Android 3D Carousel,分别是不同的实现
carousel-android:star31
缺点
- 在Fragment中使用会出现问题。
Android-3D-Carousel:star4
优点
- 增加了垂直滚动模式,尚未测试
CarrouselView:star22 中文版
优点
- 中文版,效果最佳
- 布局可以随意自定义,不受只是图片的限制。
- 2、增加点击切换到中间位置。
- 3、手势滑动切换。
- 4、切换中间回调。
- 5、自定义适配器更加方便用户设置自己需要的布局。
GlFancyCoverFlow:电影海报轮播图
- 借鉴自FancyCoverFlow
- 增加了无限滚动,更适合海报等效果
- 但是继承自GalleryView,这个类已经被google放弃了,有内存溢出的风险
特殊ui
ExpandableLayout:控件收缩
- 目前正在使用,可以自己修改源码。