-
Notifications
You must be signed in to change notification settings - Fork 155
开发准备
为了保证开发者可以根据不同的需求选择添加不同的依赖,RxImagePicker提供了分层设计。
开发者需要在Module层级的build.gradle文件中 根据实际需求 添加如下依赖:
// 基础组件
implementation "com.github.qingmei2:rximagepicker:$last_version"
// 自定义UI层基础组件
implementation "com.github.qingmei2:rximagepicker_support:$last_version"
// 知乎图片选择器
implementation "com.github.qingmei2:rximagepicker_support_zhihu:$last_version"
// 微信图片选择器
implementation "com.github.qingmei2:rximagepicker_support_wechat:$last_version"
标签中的内容为RxImagePicker的 最新版本号 ,请将该 最新版本号 代替文中的 $last_version 完成依赖,比如:
implementation 'com.github.qingmei2:rximagepicker:2.2.0'
请注意,2.3.0版本以后提供了对androidX的迁移支持,如果项目没有迁移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
,请使用2.3.0以上版本;
如果您的项目已经迁移了RxJava3, 请使用3.0.0以上版本;
RxImagePicker及其扩展库依赖了一些其他的三方库(比如appcompat-v7,RecyclerView,Glide等),如果发生冲突,需要用户进行额外的配置。
比如,当项目中有统一版本的v7包或recyclerview的依赖时,需要将对应的依赖从RxImagePicker中移除:
解决依赖冲突前,请确认项目中有v7包,RecyclerView和v4包的依赖(v7的依赖中默认有v4)!如果没有,可能会导致运行时的崩溃(can't find class xxxxx).
implementation "com.github.qingmei2:rximagepicker:${last_version}",{
exclude group: 'com.android.support', module: 'appcompat-v7'
exclude group: 'com.android.support', module: 'recyclerview-v7'
}
基础组件提供了系统级别的拍照和图片选择,当调用接口时,默认会调用 系统默认 的 相机 或者 相册,选择图片后将单张图片返回给开发者进行下一步的处理:
implementation "com.github.qingmei2:rximagepicker:$last_version"
通常来讲,基础组件提供的功能足够满足 拍照 和 相册选择图片 的功能,只添加基础组件的依赖是一个不错的选择。
基础组件的快速入门请点击这里
UI层的组件提供了自定义图片选择器UI的接口,它是基于 知乎 开源的图片选择库 Matisse ,进行了封装和调整的一系列组件。
在部分的App中,图片选择器的UI设计都是独立的,因此开发者可能需要 额外的图片选择器界面 展示给用户, 这种情况下,请添加support包的依赖:
implementation "com.github.qingmei2:rximagepicker_support:$last_version"
RxImagePicker 为开发者提供了一些 经典的图片选择器UI 可供选择,知乎主题风格的选择器就是其中之一,它本身还提供了 日间模式 和 夜间模式 两种不同的UI, 对于个人开发者来讲,这也许是不错的选择:
implementation "com.github.qingmei2:rximagepicker_support_zhihu:$last_version"
// 如果使用GlideEngine,需要手动增加Glide的依赖
def glide_version = '4.7.1'
implementation "com.github.bumptech.glide:glide:${glide_version}"
kapt "com.github.bumptech.glide:compiler:${glide_version}" // 或者是annotationProcessor
效果预览如下:
想要 快速实现上图所示效果 请点击这里
除了 知乎主题 的UI之外,RxImagePicker 还提供了 微信主题 的图片选择器供开发者参考使用:
implementation "com.github.qingmei2:rximagepicker_support_wechat:$last_version"
// 如果使用GlideEngine,需要手动增加Glide的依赖
def glide_version = '4.7.1'
implementation "com.github.bumptech.glide:glide:${glide_version}"
kapt "com.github.bumptech.glide:compiler:${glide_version}" // 或者是annotationProcessor
效果预览如下:
想要 快速实现上图所示效果 请点击这里
RxImagePicker 框架本身并未提供权限的请求配置,因此开发之前,请先在Manifest文件中做出对应的 权限配置:
- android.permission.READ_EXTERNAL_STORAGE
- android.permission.WRITE_EXTERNAL_STORAGE
如果项目的API目标版本 为Android 6.0及以上,在使用RxImagePicker打开相册之前,您还需要在项目中动态添加 RuntimePermission 的相关代码。
在2.2.0版本之后的 知乎主题和微信主题的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