-
Notifications
You must be signed in to change notification settings - Fork 155
Home
RxImagePicker 是一个Android项目中实现 图片选择 的库,它 灵活 且 可高度定制,并且支持 RxJava。
RxImagePicker的起源请参考我的 这篇文章 ,我花了一些时间整理出来这个库,并提供了快速实现 仿微信图片选择 和 知乎风格图片选择 的UI支持,但它们 并不重要 ,因为每个APP的业务需求是不同的。
RxImagePicker 更应该做到的是(或者说我心目中一个优秀的架构应该做到的),灵活 ——无论是UI层还是业务层,一旦和目前项目的需求有了冲突(修改或者添加),开发者考虑的不应该是“这个库实现不了,干脆换一个库吧”或者“不管这个库,我去再单独实现一个”,而是,基于同一个图片选择框架,修改或者添加对应配置的接口。
- 框架默认开发者对 RxJava 有一定的基础
- 框架默认开发者对有一定的 Android 开发基础
- 框架本身并没有添加权限相关的代码,使用时需要开发者提前进行 对应权限的请求处理
请点击本页面右边 SlideBar中所展示的内容,开始 RxImagePicker的教程,或者点击下方的链接:
- 主页
- 更新日志
- 常见问题
- 开发准备
-
开始使用
- 1 快速实现
- 2 进阶使用
- 设计思想
- 2.1 行为注解
- 2.2 ICustomPickerView接口
- 2.3 【必要参数】Context
- 2.4 【可选参数】ICustomPickerConfiguration
- 2.5 实现完全自定义UI
- 2.6 选择结果Result和扩展数据
- 3 已废弃API
在 RxImagePicker 的设计过程中,我参考了很多的三方库,它们源码中优秀的 设计思想 或者 架构设计 ,都给与了我很大的启示,在此深表感谢,感谢诸多开源爱好者前辈们的无私精神:
-
Retrofit:Type-safe HTTP client for Android and Java by Square, Inc.
Retrofit是聚集了诸多优秀的 设计思想 和 架构设计 于一身的库,它将复杂多样的 网络请求 需求转换成了接口供开发者配置,我认为RxImagePicker也可以这样做。 -
RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库, 随着程序逻辑变得越来越复杂,它依然能够保持简洁。它是构成RxImagePicker的 基础组件 。 -
RxAndroid:RxJava bindings for Android
RxJava的一个扩展库,更好的兼容了Android特性,比如主线程,UI事件等。它是构成RxImagePicker的 基础组件 。 -
RxImagePicker:Android. Pick image from camera or gallery using RxJava2
-
RxPermissions:Android runtime permissions powered by RxJava2
-
RxLifecycle:Lifecycle handling APIs for Android apps using RxJava
这三个优秀的RxJava拓展库,在数据的传递方案上,给与了我很大的启示。 -
RxCache:Reactive caching library for Android and Java
优秀的RxJava拓展库,用于处理RxJava的数据缓存,库底层通过Dagger完成对配置的处理,我借鉴在了RxImagePicker中。 -
Dagger2:A fast dependency injector for Android and Java.
Google优秀的依赖注入框架,它是构成RxImagePicker的 基础组件 。 -
Matisse:A well-designed local image and video selector for Android 知乎开源,优秀的Android图片选择库,拥有非常 Material Design 的设计。在RxImagePicker中,Matisse被抽出来放入了RxImagePicker_Support,成为了 UI层的基础组件 。
- 主页
- 2.x更新日志(RxJava2)
- 3.x更新日志(RxJava3 + AndroidX)
- 常见问题
- 开发准备
-
开始使用
- 1 快速实现
- 2 进阶使用
- 设计思想
- 2.1 行为注解
- 2.2 ICustomPickerView接口
- 2.3 【必要参数】Context
- 2.4 【可选参数】ICustomPickerConfiguration
- 2.5 实现完全自定义UI
- 2.6 选择结果Result和扩展数据
- 3 已废弃API