-
Notifications
You must be signed in to change notification settings - Fork 155
ChangeLog_2.x
RxImagePicker目前分为2个主要版本:
- 2.x版本:
Kotlin
实现,支持AndroidX
和RxJava2
- 3.x版本:
Kotlin
实现,支持AndroidX
和RxJava3
强烈建议开发者将项目迁移 AndroidX ,库之后的版本只提供对 AndroidX 的支持!
如果项目没有迁移
androidX
,即包名前缀为com.android.support
,请使用稳定版本v2.2.0。
3.x版本的更新日志请参考 这里
2.5.6 版本中增加了视频预览功能,API并未发生变动,请放心升级。
- Feat 增加视频预览功能
感谢 @Vicent9920 的代码贡献。
2.5.4 版本中修复了部分已知bug,API并未发生变动,请放心升级。
- Fix #85
- Fix #84
- Update 目前图片选择器相关主题Activity只支持竖屏模式
2.5.2
版本中修复了部分已知bug,API并未发生变动,请放心升级。
- Feature : 提供了对 Android Q 系统的支持.
- Fix:修复了在Android Q 设备上运行时会导致崩溃的BUG.
感谢 cocomikes 反馈的bug,并贡献对应的PR。
2.5.1
版本中修复了部分已知bug,API并未发生变动,请放心升级。
2.5.0
版本中对 Zhihu 和 Wechat 主题下的代码进行了对应的更新,版本依赖发生了改变,升级时请注意 【向下兼容警告】。
- Feature : 为知乎和微信主题的返回结果,增加对应的字段以告知媒体资源的类型(视频、图片、音频),详情请参考 #61
-
Fix : 升级了
Glide
最新版本的依赖,尽量保证依赖Glide最新版本的开发者不再需要配置最新的GlideEngine,详情请参考#56 、#58, 【向下兼容警告】,请参考下方的 版本迁移指南。
- 1.项目是否依赖了 知乎 和 微信 主题并使用了
Glide
作为图片的加载引擎,如果没有,不需要改动既有代码; - 2.项目是否依赖了4.9.0版本的
Glide
,如果没有,从下面操作 选择一个 进行即可:- 2.1 请尝试实现属于自己项目的
GlideEngine
,具体实现参考源码的实现即可 - 2.2 或者 将项目的
Glide
依赖升级到4.9.0
- 2.1 请尝试实现属于自己项目的
代码示例:
val mimeType = result.getStringExtra("EXTRA_OPTIONAL_MIME_TYPE", "")
Log.d(TAG, "mime types: $mimeType")
mimeType字段的使用方式,详情请参考 这个类:
val isImage: Boolean
get() = if (mimeType == null) false else mimeType == MimeType.JPEG.toString()
|| mimeType == MimeType.PNG.toString()
|| mimeType == MimeType.GIF.toString()
|| mimeType == MimeType.BMP.toString()
|| mimeType == MimeType.WEBP.toString()
2.4.3
版本中对 Zhihu 和 Wechat 主题下的代码进行了对应的更新,API并未发生变动,请放心升级。
- Fix : #50 ;
- Update : 更新优化了 Zhihu 和 Wechat 主题下的部分代码。
2.4.2
版本中对 Zhihu 和 Wechat 主题下的代码进行了对应的更新,API并未发生变动,请放心升级。
-
Fix : #41 The camera did not open as expected when configuring
capture(true)
; - Fix : 修正中文系统下提示文字为英语的问题;
- Update : 更新优化了 Zhihu 和 Wechat 主题下的部分代码。
感谢 guoleifei 反馈的2个bug,并贡献对应的解决方案相关代码。
2.4.1
版本中部分重构了底层设计及API, 并同时保持了向下版本至v2.3.0
AndroidX版本的兼容。
如果项目没有迁移AndroidX
,即包名前缀为com.android.support
,请继续使用稳定版本v2.2.0!!!
- Feature : #39 RxImagePicker提供了 系统相册对文件类型的筛选 相关接口,详细示例代码请参考这里
目前支持的类型:Image(仅图片,默认仅展示图片)、Video(仅视频)和Audio(仅音频),三种类型可组合进行筛选;
-
Pref : 现在使用
Java
代码,RxImagePicker#create()
方法不再需要先获取其INSTANCE实例了:
Before: RxImagePicker.INSTANCE.create(XXX.class); // 先获取静态实例
Now: RxImagePicker.create(XXX.class); // 静态方法
-
Update : 更新部分类名,更新Sample代码,现在Sample代码全部由
Kotlin
实现; - Update : 更新Sample代码相关依赖库的版本;
2.3.0
版本提供了对androidX
的迁移支持,Android官方文档请参考 这里.
如果项目没有迁移androidX
,请勿升级到该版本!!!。
- Fix : #37 修正了bintray plugin 插件版本错误aar编译失败,导致开发者添加依赖报错的bug.
2.3.0-alpha01
版本提供了对androidX
的迁移支持,Android官方文档请参考 这里.
如果项目没有迁移androidX
,请勿升级到该版本!!!。
- Refactor : 迁移依赖包名以支持 AndroidX.
如果您的v7包等依赖包groupId
(即包名前缀)为com.android.support
,请使用稳定版本2.2.0:
compile 'com.github.qingmei2:rximagepicker:2.2.0'
compile 'com.github.qingmei2:rximagepicker_support:2.2.0'
compile 'com.github.qingmei2:rximagepicker_support_zhihu:2.2.0'
compile 'com.github.qingmei2:rximagepicker_support_wechat:2.2.0'
如果您的项目已经迁移了AndroidX, 即v7包依赖groupId
为androidx.appcompat
,请使用最新版本:
compile 'com.github.qingmei2:rximagepicker:2.3.0-alpha01'
compile 'com.github.qingmei2:rximagepicker_support:2.3.0-alpha01'
compile 'com.github.qingmei2:rximagepicker_support_zhihu:2.3.0-alpha01'
compile 'com.github.qingmei2:rximagepicker_support_wechat:2.3.0-alpha01'
2.2.0-alpha为该版本的Preview版本,发布以来,并未出现bug的issue,因此发布正式版本2.2.0,API并未发生变动,请放心升级。
- Update : 添加Wechat主题的国际化配置,目前支持的语言为:English,简体中文。
2.2.0-alpha的升级重构了底层设计及API,升级时请注意 【向下兼容警告】
- Refactor : 重构,现在RxImagePicker的基础依赖包,体积从58k降低至38k(33%UP)
- Refactor : 重构,优化了底层的性能,现在的Context和UI配置的依赖是在方法调用时作为参数进行的注入
2.2.0版本之前,Context和对应的UI配置,是在RxImagePicker初始化的Builder中进行的依赖注入,这导致了两个问题,一是提前注入到内存对性能的影响,二是需要自定义一个String类型的key来映射对应的UI;2.2.0版本后,这些依赖作为方法的参数,在调用时进行解析,减少了开发者多余的配置。
- Refactor : 重构了@Gallery和@Camera注解的API
-
Remove : 现在Glide的依赖方式调整为
compileOnly
,开发者现在需要自己配置图片选择库 - Remove : 移除了RxImagePicker.Builder及相关API,现在的RxImagePicker仅仅提供了create()相关的API
- Update : 更新Sample代码,现在sample代码展示的是最新版本(2.2.0+)的实现方式。
- Update : 更新部分kotlin代码
- 1.修改ImagePicker接口,配置对应的@Gallery或者@Camera注解,并增加对应参数在接口方法中;
- 2.移除RxImagePicker.Builder的初始化代码,现在的初始化API非常简便(因为对应的依赖注入都放在了运行时调用的方法参数中);
- 3.在调用方法时,将对应的Context(必须是FragmentActivity!Application或其他会导致运行时抛出异常)和可选的配置依赖作为参数传递进去。
最新的API使用请参考sample,以及最新版本的使用文档
API并未发生变动,请放心升级。
- Fix : 修正打开拍照界面可能会出现的crash。
API并未发生变动,请放心升级。
- Refactor : 重构,最新版本的编程语言Java -> Kotlin。
- Remove : 2.x版本中,底层Dagger的依赖及相关文件被移除,库本身相比1.x版本更轻,减少额外的依赖成本。
- Update : 优化Sample,提供了Java的实现方式代码和Kotlin的实现方式代码。
2.1.1版本为Kotlin重构后2.x的基础版本,该版本相比1.x中的版本,API并未发生变动,方便开发者选择性升级。
0.4.0的升级调整了API,升级时请注意 【向下兼容警告】
- Add : 添加 Result 实体类和 Functions函数,用于包装选择结果的 Uri 以及发送/接收ExtraData。
- Add : 微信主题添加 选择原图 的扩展数据接口,并更新对应界面的UI,详细使用请参考Sample的微信主题界面。
- Refactor : 重构默认的返回值,目前RxImagePicker默认返回 Result 类型的数据(【向下兼容警告!】 请在升级后的代码中,将接口的返回值泛型调整为Result,并在subscribe()中进行对应的处理)。
- Refactor : 现在,GlideEngine被恰当地移动到 微信主题 和 知乎主题 中了。
- Update : 优化Sample。
0.3.0的升级调整了API,升级时请注意 【向下兼容警告】
- Remove :移除了 @AsBitmap/@AsUri/@File的 返回值类型注解,以及相关函数,目前RxImagePicker默认只返回Uri类型的数据(【向下兼容警告!】 请在升级后的代码中,将接口的返回值泛型调整为Uri,并移除该类型注解的引用)。
- Fix : 修正了因图片过大,导致OOM的问题,详见 #6。
- Fix : 修正了接口方法配置@AsBitmap时,选择视频文件,导致应用崩溃的问题。
- Fix : 修正了接口方法配置@AsFile时,生成本地缓存文件导致程序体积不断变大的问题。
- Update : 优化Sample,移除Java8的 lambda表达式 以及 方法引用 的代码。
- 主页
- 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