1 glide 版本冲突
解决方法:
在依赖takephoto库时, 注明排除依赖Glide库即可
具体方法如下:
下面这名依赖语义为: 依赖takephoto4.0.3版本, 并排除依赖Glider库; 下面exclude: ….这句中的com.github.bumptech.glide是依赖Glide的语法, 不是随便拼出来的.
换句话说, 如果您需要排除依赖哪个库,就这个地方换成对应库的依赖链接, 不用加版本号和名称.
compile('com.jph.takephoto:takephoto_library:4.0.3') {
exclude group: 'com.github.bumptech.glide'
}
- 但是4.0.3之后 操作单独有一个类,这样 还是会报错,只能 把自己gradle种的glide版本 降到 3.6.1 或者 升级 takephoto中的grilde版本
2 glide 3.6.1 的使用
[Gilde 4.0.3 使用心得]
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.default_head_img)
.error(R.drawable.default_head_img)
.priority(Priority.HIGH);
Glide.with(mContext).load(imgURL).apply(options).into(headerHolder.headerImage);
3 使用Glide加载、缓存图片、Gif、解决背景出现浅绿色、GlideModules冲突
使用Glide加载、缓存图片、Gif、解决背景出现浅绿色、GlideModules冲突
其他
解决了 还是glide依赖重复的问题,我依赖的一个第三方里面又依赖了glide,在哪Terminal里面输入 gradlew -q :app(你看的Module名)dependence (命令可能不对,我也记不清了。你自己百度一下看看)可以查看当前的引用,有重复的在具体操作 这是我的操作 compile(‘me.iwf.photopicker:PhotoPicker:0.1.8’) {
exclude group: ‘com.github.bumptech.glide’, module: ‘glide’
}
4 takephoto 的使用
- 首先设置监听方法
implements TakePhoto.TakeResultListener,InvokeListener
- 然后初始化
getTakePhoto().onCreate(savedInstanceState);
public TakePhoto getTakePhoto(){
if (takePhoto==null){
takePhoto= (TakePhoto) TakePhotoInvocationHandler.of(this).bind(new TakePhotoImpl(this,this));
}
return takePhoto;
}
- 设置监听方法
@Override
protected void onSaveInstanceState(Bundle outState) {
getTakePhoto().onSaveInstanceState(outState);
super.onSaveInstanceState(outState);
}
@Override
public void takeSuccess(TResult result) {
L.e("takeSuccess:" + result.getImage().getCompressPath());
photoPath = result.getImage().getCompressPath();
//上传图片
requestUpLoadIamge(compressImgPath(photoPath));
}
@Override
public void takeFail(TResult result,String msg) {
L.e("takeFail:" + msg);
promptInformation("拍照或相册失败,请重试");
}
@Override
public void takeCancel() {
L.e(getResources().getString(R.string.msg_operation_canceled));
}
@Override
public PermissionManager.TPermissionType invoke(InvokeParam invokeParam) {
PermissionManager.TPermissionType type=PermissionManager.checkPermission(TContextWrap.of(this),invokeParam.getMethod());
if(PermissionManager.TPermissionType.WAIT.equals(type)){
this.invokeParam=invokeParam;
}
return type;
}