Skip to content

常见问题

qingmei2 edited this page Aug 25, 2018 · 8 revisions

如果有特殊问题,请提issue,更建议加QQ群391638630,不仅有很多同样使用RxImagePicker的小伙伴,同时我更容易第一时间看到,并进行交流反馈。

Index

功能相关

依赖相关


> 有没有打算加入图片编辑功能?

图片的编辑、剪裁、涂鸦 (后统称为图片编辑)是一个我可能会加入的功能,但至少不是现在。

图像处理 是一个很庞大的系统,并非所有的需求都需要它,即使有,也可能只是其中的一小部分。

RxImagePicker的定义很纯粹,我不希望它负载其他的责任。如果有机会,我会考虑再实现一个 RxImageEditor 诸如此类的 图片编辑库,并且提供和RxImagePicker对接的接口,但是这太遥远了。

同时, 图片的调整(除了裁剪之外,还有图片压缩,涂鸦,注释,模糊处理等) 是一个大的功能,我认为它也应该有一个复杂的设计来实现 ——单纯的写一个固定的界面实现图片的裁剪或者压缩并不是很困难,但是这会带来耦合,这不是我希望看到的。


> 库本身依赖的库太多了(Dagger/RxJava2)

RxImagePicker的设计之初目的就是 支持RxJava2,采用Dagger也是方便管理依赖,这是架构设计时的思路。

之前借鉴郭神的平台发表自己的文章,在末尾的评论中,我看到了不少朋友类似的意见,库本身添加额外的依赖本身就是不合理的设计。我最近在思考这个问题,减少库的依赖是有意义的,但是这可能需要很多时间去调整底部的架构,在不久之后的 某个大版本,我会将Dagger的依赖从库中移除,但对于移除 RxJava 来说,所需要的成本可能会很高,我可能暂时不会去修改底层关于 RxJava 的架构及依赖配置:pray:。

当然,如果您有兴趣,也可以fork源码并进行个性化的修改:smile:。

在最新的2.x版本中,Dagger的依赖已经被移除。


> 添加依赖不成功

请首先检查自己项目中是否出现依赖冲突,不同的依赖库,内部的依赖可能版本不一样,这样就可能会导致编译期间依赖冲突

最简单的,比如v7包,如果有冲突,应该做出如下配置:

// 如果是RxImagePicker的扩展依赖,也应该这样配置
implementation 'com.github.qingmei2:rximagepicker:2.1.2',{
   exclude group: 'com.android.support', module: 'appcompat-v7' 
}

> 打开了相机/相册对应界面,之后选择图片/拍照没反应

请首先检查自己的Activity中,是否重写了onActivityResult()方法!

系统相机拍照为例,基本原理是在当前Activity创建了一个不可见的Fragment,然后通过Intent打开系统相机,当用户拍照后,data会通过Activity分发给Fragment处理,因此,如果重写了Activity的onActivityResult()方法,一定不要手误删除这行代码:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    // 不要删除这行代码!
    super.onActivityResult(requestCode, resultCode, data)
    
    //...do other thing
}

如果是kotlin,千万不要弄错平台类型,即参数中Intent应该是可空的Intent?而不是Intent(虽然这是Kotlin基础,但是不熟悉的同学可能会误操作)。


> 点击预览崩溃

导致该情况可能是项目的com.android.support包版本较低的原因导致的,建议开发者将项目中的依赖版本更新到最新版本。

详情请参考 #32