Skip to content

ChangeLog_2.x

qingmei2 edited this page Jul 8, 2020 · 9 revisions

版本说明

RxImagePicker目前分为2个主要版本:

  • 2.x版本: Kotlin实现,支持AndroidXRxJava2
  • 3.x版本: Kotlin实现,支持AndroidXRxJava3

强烈建议开发者将项目迁移 AndroidX ,库之后的版本只提供对 AndroidX 的支持!

如果项目没有迁移androidX,即包名前缀为com.android.support,请使用稳定版本v2.2.0。

3.x版本的更新日志请参考 这里


Version:2.5.6 (Update: 2020/ 7/ 7)

2.5.6 版本中增加了视频预览功能,API并未发生变动,请放心升级。

  • Feat 增加视频预览功能

感谢 @Vicent9920 的代码贡献。


Version:2.5.4 (Update: 2020/ 4/ 21)

2.5.4 版本中修复了部分已知bug,API并未发生变动,请放心升级。

  • Fix #85
  • Fix #84
  • Update 目前图片选择器相关主题Activity只支持竖屏模式

Version:2.5.2 (Update: 2019/ 11/ 22)

2.5.2 版本中修复了部分已知bug,API并未发生变动,请放心升级

  • Feature : 提供了对 Android Q 系统的支持.
  • Fix:修复了在Android Q 设备上运行时会导致崩溃的BUG.

Thanks

感谢 cocomikes 反馈的bug,并贡献对应的PR。


Version:2.5.1 (Update: 2019/ 7/ 30)

2.5.1 版本中修复了部分已知bug,API并未发生变动,请放心升级

  • Fix:选中图片时可能会导致的bug. #67,#55
  • Fix:依赖知乎或者微信主题时,app_name的资源冲突导致显示错误的bug. #65

Version:2.5.0 (Update: 2019/ 6/ 9)

2.5.0 版本中对 ZhihuWechat 主题下的代码进行了对应的更新,版本依赖发生了改变,升级时请注意 【向下兼容警告】

  • Feature : 为知乎和微信主题的返回结果,增加对应的字段以告知媒体资源的类型(视频、图片、音频),详情请参考 #61
  • Fix : 升级了Glide最新版本的依赖,尽量保证依赖Glide最新版本的开发者不再需要配置最新的GlideEngine,详情请参考#56#58【向下兼容警告】,请参考下方的 版本迁移指南

【2.5.0版本迁移指南】

  • 1.项目是否依赖了 知乎微信 主题并使用了Glide作为图片的加载引擎,如果没有,不需要改动既有代码;
  • 2.项目是否依赖了4.9.0版本的Glide,如果没有,从下面操作 选择一个 进行即可:
    • 2.1 请尝试实现属于自己项目的GlideEngine,具体实现参考源码的实现即可
    • 2.2 或者 将项目的Glide依赖升级到4.9.0

【如何获取媒体资源的类型(视频、图片、音频)?】

代码示例:

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()

Version:2.4.3 (Update: 2019/ 5/ 13)

2.4.3 版本中对 ZhihuWechat 主题下的代码进行了对应的更新,API并未发生变动,请放心升级

  • Fix : #50 ;
  • Update : 更新优化了 ZhihuWechat 主题下的部分代码。

Version:2.4.2 (Update: 2019/ 1/ 19)

2.4.2 版本中对 ZhihuWechat 主题下的代码进行了对应的更新,API并未发生变动,请放心升级

Thanks

感谢 guoleifei 反馈的2个bug,并贡献对应的解决方案相关代码。


Version:2.4.1 (Update: 2019/ 1/ 14)

2.4.1 版本中部分重构了底层设计及API, 并同时保持了向下版本至v2.3.0AndroidX版本的兼容。

如果项目没有迁移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代码相关依赖库的版本;

Version:2.3.0-alpha03 (Update: 2018/ 11/ 2)

2.3.0版本提供了对androidX的迁移支持,Android官方文档请参考 这里.

如果项目没有迁移androidX,请勿升级到该版本!!!

  • Fix : #37 修正了bintray plugin 插件版本错误aar编译失败,导致开发者添加依赖报错的bug.

Version:2.3.0-alpha01 (Update: 2018/ 10/ 23)

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包依赖groupIdandroidx.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'

Version:2.2.0 (Update: 2018/ 9/ 18)

2.2.0-alpha为该版本的Preview版本,发布以来,并未出现bug的issue,因此发布正式版本2.2.0,API并未发生变动,请放心升级

  • Update : 添加Wechat主题的国际化配置,目前支持的语言为:English,简体中文

Version:2.2.0-alpha (Update: 2018/ 8/ 6)

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代码

【请注意】本次升级大幅调整API! 下面提供了简单的版本升级方案:

  • 1.修改ImagePicker接口,配置对应的@Gallery或者@Camera注解,并增加对应参数在接口方法中;
  • 2.移除RxImagePicker.Builder的初始化代码,现在的初始化API非常简便(因为对应的依赖注入都放在了运行时调用的方法参数中);
  • 3.在调用方法时,将对应的Context(必须是FragmentActivity!Application或其他会导致运行时抛出异常)和可选的配置依赖作为参数传递进去。

最新的API使用请参考sample,以及最新版本的使用文档


Version:2.1.2 (Update: 2018/ 7/ 23)

API并未发生变动,请放心升级

  • Fix : 修正打开拍照界面可能会出现的crash。

Version:2.1.1 (Update: 2018/ 7/ 17)

API并未发生变动,请放心升级

  • Refactor : 重构,最新版本的编程语言Java -> Kotlin。
  • Remove : 2.x版本中,底层Dagger的依赖及相关文件被移除,库本身相比1.x版本更轻,减少额外的依赖成本。
  • Update : 优化Sample,提供了Java的实现方式代码和Kotlin的实现方式代码。

2.1.1版本为Kotlin重构后2.x的基础版本,该版本相比1.x中的版本,API并未发生变动,方便开发者选择性升级。


Version:0.4.0 (Update: 2018/6/8)

0.4.0的升级调整了API,升级时请注意 【向下兼容警告】

  • Add : 添加 Result 实体类和 Functions函数,用于包装选择结果的 Uri 以及发送/接收ExtraData。
  • Add : 微信主题添加 选择原图 的扩展数据接口,并更新对应界面的UI,详细使用请参考Sample的微信主题界面。
  • Refactor : 重构默认的返回值,目前RxImagePicker默认返回 Result 类型的数据(【向下兼容警告!】 请在升级后的代码中,将接口的返回值泛型调整为Result,并在subscribe()中进行对应的处理)。
  • Refactor : 现在,GlideEngine被恰当地移动到 微信主题知乎主题 中了。
  • Update : 优化Sample。

Version:0.3.0 (Update: 2018/5/27)

0.3.0的升级调整了API,升级时请注意 【向下兼容警告】

  • Remove :移除了 @AsBitmap/@AsUri/@File的 返回值类型注解,以及相关函数,目前RxImagePicker默认只返回Uri类型的数据(【向下兼容警告!】 请在升级后的代码中,将接口的返回值泛型调整为Uri,并移除该类型注解的引用)。
  • Fix : 修正了因图片过大,导致OOM的问题,详见 #6
  • Fix : 修正了接口方法配置@AsBitmap时,选择视频文件,导致应用崩溃的问题。
  • Fix : 修正了接口方法配置@AsFile时,生成本地缓存文件导致程序体积不断变大的问题。
  • Update : 优化Sample,移除Java8的 lambda表达式 以及 方法引用 的代码。
Clone this wiki locally