TakePhoto_android7.0
TakePhoto_android7.0 copied to clipboard
修复Bug,部分机型选择相册图片截图后,新产生的图片,再次选择,选不到问题。
LQRPhotoSelectUtils.java 229行,attachToActivityForResult 方法里面增加 public void attachToActivityForResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case LQRPhotoSelectUtils.REQ_TAKE_PHOTO://拍照 mInputFile = new File(imgPath); if (mShouldCrop) {//裁剪 mOutputFile = new File(generateImgePath()); mOutputUri = Uri.fromFile(mOutputFile); zoomPhoto(mInputFile, mOutputFile); } else {//不裁剪 mOutputUri = Uri.fromFile(mInputFile); if (mListener != null) { mListener.onFinish(mInputFile, mOutputUri); } } break; case LQRPhotoSelectUtils.REQ_SELECT_PHOTO://图库 if (data != null) { Uri sourceUri = data.getData(); String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = mActivity.managedQuery(sourceUri, proj, null, null, null); int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String imgPath = cursor.getString(columnIndex); mInputFile = new File(imgPath);
if (mShouldCrop) {//裁剪
mOutputFile = new File(generateImgePath());
mOutputUri = Uri.fromFile(mOutputFile);
zoomPhoto(mInputFile, mOutputFile);
} else {//不裁剪
mOutputUri = Uri.fromFile(mInputFile);
if (mListener != null) {
mListener.onFinish(mInputFile, mOutputUri);
}
}
}
break;
case LQRPhotoSelectUtils.REQ_ZOOM_PHOTO://裁剪
if (data != null) {
if (mOutputUri != null) {
//删除拍照的临时照片
File tmpFile = new File(imgPath);
if (tmpFile.exists())
tmpFile.delete();
if (mListener != null) {
mListener.onFinish(mOutputFile, mOutputUri);
}
}
}
break;
case LQRPhotoSelectUtils.REQ_SELECT_FILE:
break;
}
}else if(resultCode == Activity.RESULT_CANCELED){
//此处解决部分手机选不到图片问题
try {
if(mInputFile != null){
//不裁剪
mOutputUri = Uri.fromFile(mInputFile);
if (mListener != null) {
mListener.onFinish(mInputFile, mOutputUri);
}
}
}catch (Exception e){}
}
}