Skip to content

开发准备

qingmei2 edited this page Jul 12, 2019 · 17 revisions

1 添加依赖

为了保证开发者可以根据不同的需求选择添加不同的依赖,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"   

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

1.1 基础组件

基础组件提供了系统级别的拍照和图片选择,当调用接口时,默认会调用 系统默认相机 或者 相册,选择图片后将单张图片返回给开发者进行下一步的处理:

implementation "com.github.qingmei2:rximagepicker:$last_version"

通常来讲,基础组件提供的功能足够满足 拍照相册选择图片 的功能,只添加基础组件的依赖是一个不错的选择。

基础组件的快速入门请点击这里

1.2 UI层组件

UI层的组件提供了自定义图片选择器UI的接口,它是基于 知乎 开源的图片选择库 Matisse ,进行了封装和调整的一系列组件。

在部分的App中,图片选择器的UI设计都是独立的,因此开发者可能需要 额外的图片选择器界面 展示给用户, 这种情况下,请添加support包的依赖:

implementation "com.github.qingmei2:rximagepicker_support:$last_version"

1.3 知乎图片选择器:

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

效果预览如下:



想要 快速实现上图所示效果 请点击这里

1.4 微信图片选择器

除了 知乎主题 的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

效果预览如下:


想要 快速实现上图所示效果 请点击这里

2 配置权限

RxImagePicker 框架本身并未提供权限的请求配置,因此开发之前,请先在Manifest文件中做出对应的 权限配置

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

如果项目的API目标版本 为Android 6.0及以上,在使用RxImagePicker打开相册之前,您还需要在项目中动态添加 RuntimePermission 的相关代码。

在2.2.0版本之后的 知乎主题微信主题的UI中,额外增加了权限的请求,但仍然 建议开发者放在之前的界面中进行权限请求