Java源码示例:com.luck.picture.lib.entity.LocalMedia
示例1
/**
* 加载更多
*/
private void loadMoreData() {
long bucketId = getIntent().getLongExtra(PictureConfig.EXTRA_BUCKET_ID, -1);
mPage++;
LocalMediaPageLoader.getInstance(getContext(), config).loadPageMediaData(bucketId, mPage, config.pageSize,
(OnQueryDataResultListener<LocalMedia>) (result, currentPage, isHasMore) -> {
if (!isFinishing()) {
this.isHasMore = isHasMore;
if (isHasMore) {
int size = result.size();
if (size > 0 && adapter != null) {
adapter.getData().addAll(result);
adapter.notifyDataSetChanged();
} else {
// 这种情况就是开启过滤损坏文件刚好导致某一页全是损坏的虽然result为0,但还要请求下一页数据
loadMoreData();
}
}
}
});
}
示例2
/**
* Verify the validity of the video
*
* @param media
* @return
*/
private boolean checkVideoLegitimacy(LocalMedia media) {
boolean isEnterNext = true;
if (PictureMimeType.isHasVideo(media.getMimeType())) {
if (config.videoMinSecond > 0 && config.videoMaxSecond > 0) {
// The user sets the minimum and maximum video length to determine whether the video is within the interval
if (media.getDuration() < config.videoMinSecond || media.getDuration() > config.videoMaxSecond) {
isEnterNext = false;
showPromptDialog(getString(R.string.picture_choose_limit_seconds, config.videoMinSecond / 1000, config.videoMaxSecond / 1000));
}
} else if (config.videoMinSecond > 0) {
// The user has only set a minimum video length limit
if (media.getDuration() < config.videoMinSecond) {
isEnterNext = false;
showPromptDialog(getString(R.string.picture_choose_min_seconds, config.videoMinSecond / 1000));
}
} else if (config.videoMaxSecond > 0) {
// Only the maximum length of video is set
if (media.getDuration() > config.videoMaxSecond) {
isEnterNext = false;
showPromptDialog(getString(R.string.picture_choose_max_seconds, config.videoMaxSecond / 1000));
}
}
}
return isEnterNext;
}
示例3
public void onActivityResult(int requestCode, int resultCode, Intent data) {
LoggerManager.i("onActivityResult", "path:");
if (resultCode == Activity.RESULT_OK) {
if (requestCode != mRequestCode) return;
// 图片、视频、音频选择结果回调
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
// 例如 LocalMedia 里面返回三种path
// 1.media.getPath(); 为原图path
// 2.media.getCutPath();为裁剪后path,需判断media.isCut();是否为true 注意:音视频除外
// 3.media.getCompressPath();为压缩后path,需判断media.isCompressed();是否为true 注意:音视频除外
// 如果裁剪并压缩了,以取压缩路径为准,因为是先裁剪后压缩的
List<String> list = new ArrayList<>();
for (LocalMedia item : selectList) {
list.add(item.getPath());
LoggerManager.i("onActivityResult", "path:" + item.getPath());
}
if (mOnImageSelect != null) {
mOnImageSelect.onImageSelect(mRequestCode, list);
}
}
}
示例4
/**
* 从本地获取数据
*/
private void loadData() {
long bucketId = getIntent().getLongExtra(PictureConfig.EXTRA_BUCKET_ID, -1);
mPage++;
LocalMediaPageLoader.getInstance(getContext(), config).loadPageMediaData(bucketId, mPage, config.pageSize,
(OnQueryDataResultListener<LocalMedia>) (result, currentPage, isHasMore) -> {
if (!isFinishing()) {
this.isHasMore = isHasMore;
if (isHasMore) {
int size = result.size();
if (size > 0 && adapter != null) {
adapter.getData().addAll(result);
adapter.notifyDataSetChanged();
} else {
// 这种情况就是开启过滤损坏文件刚好导致某一页全是损坏的虽然result为0,但还要请求下一页数据
loadMoreData();
}
}
}
});
}
示例5
@Override
public void onResult(List<LocalMedia> result) {
for (LocalMedia media : result) {
Log.i(TAG, "是否压缩:" + media.isCompressed());
Log.i(TAG, "压缩:" + media.getCompressPath());
Log.i(TAG, "原图:" + media.getPath());
Log.i(TAG, "是否裁剪:" + media.isCut());
Log.i(TAG, "裁剪:" + media.getCutPath());
Log.i(TAG, "是否开启原图:" + media.isOriginal());
Log.i(TAG, "原图路径:" + media.getOriginalPath());
Log.i(TAG, "Android Q 特有Path:" + media.getAndroidQToPath());
Log.i(TAG, "宽高: " + media.getWidth() + "x" + media.getHeight());
Log.i(TAG, "Size: " + media.getSize());
// TODO 可以通过PictureSelectorExternalUtils.getExifInterface();方法获取一些额外的资源信息,如旋转角度、经纬度等信息
}
if (mAdapterWeakReference.get() != null) {
mAdapterWeakReference.get().setList(result);
mAdapterWeakReference.get().notifyDataSetChanged();
}
}
示例6
@Override
public OnResultCallbackListener<LocalMedia> getResultCallbackListener() {
return new OnResultCallbackListener<LocalMedia>() {
@Override
public void onResult(List<LocalMedia> result) {
// TODO 这种情况是内存极度不足的情况下,比如开启开发者选项中的不保留活动或后台进程限制,导致OnResultCallbackListener被回收
// 可以在这里进行一些补救措施,通过广播或其他方式将结果推送到相应页面,防止结果丢失的情况
Log.i(TAG, "onResult:" + result.size());
}
@Override
public void onCancel() {
Log.i(TAG, "PictureSelector onCancel");
}
};
}
示例7
@Override
public void onResult(List<LocalMedia> result) {
for (LocalMedia media : result) {
Log.i(TAG, "是否压缩:" + media.isCompressed());
Log.i(TAG, "压缩:" + media.getCompressPath());
Log.i(TAG, "原图:" + media.getPath());
Log.i(TAG, "是否裁剪:" + media.isCut());
Log.i(TAG, "裁剪:" + media.getCutPath());
Log.i(TAG, "是否开启原图:" + media.isOriginal());
Log.i(TAG, "原图路径:" + media.getOriginalPath());
Log.i(TAG, "Android Q 特有Path:" + media.getAndroidQToPath());
Log.i(TAG, "宽高: " + media.getWidth() + "x" + media.getHeight());
Log.i(TAG, "Size: " + media.getSize());
// TODO 可以通过PictureSelectorExternalUtils.getExifInterface();方法获取一些额外的资源信息,如旋转角度、经纬度等信息
}
if (mAdapterWeakReference.get() != null) {
mAdapterWeakReference.get().setList(result);
mAdapterWeakReference.get().notifyDataSetChanged();
}
}
示例8
@Override
protected void initWidgets() {
super.initWidgets();
titleViewBg = findViewById(R.id.titleViewBg);
tvTitle = findViewById(R.id.picture_title);
ibLeftBack = findViewById(R.id.left_back);
ibDelete = findViewById(R.id.ib_delete);
viewPager = findViewById(R.id.preview_pager);
position = getIntent().getIntExtra(PictureConfig.EXTRA_POSITION, 0);
images = (List<LocalMedia>) getIntent().getSerializableExtra(PictureConfig.EXTRA_PREVIEW_SELECT_LIST);
ibLeftBack.setOnClickListener(this);
ibDelete.setOnClickListener(this);
ibDelete.setVisibility(config.style != null ? config.style.pictureExternalPreviewGonePreviewDelete
? View.VISIBLE : View.GONE : View.GONE);
initViewPageAdapterData();
}
示例9
/**
* onChangeMediaStatus
*
* @param media
*/
private void onChangeMediaStatus(LocalMedia media) {
if (mGalleryAdapter != null) {
int itemCount = mGalleryAdapter.getItemCount();
if (itemCount > 0) {
boolean isChangeData = false;
for (int i = 0; i < itemCount; i++) {
LocalMedia item = mGalleryAdapter.getItem(i);
if (item == null || TextUtils.isEmpty(item.getPath())) {
continue;
}
boolean isOldChecked = item.isChecked();
boolean isNewChecked = item.getPath().equals(media.getPath()) || item.getId() == media.getId();
if (!isChangeData) {
isChangeData = (isOldChecked && !isNewChecked) || (!isOldChecked && isNewChecked);
}
item.setChecked(isNewChecked);
}
if (isChangeData) {
mGalleryAdapter.notifyDataSetChanged();
}
}
}
}
示例10
@Override
public boolean handleMessage(Message msg) {
if (mCompressListener == null) return false;
switch (msg.what) {
case MSG_COMPRESS_START:
mCompressListener.onStart();
break;
case MSG_COMPRESS_SUCCESS:
mCompressListener.onSuccess((List<LocalMedia>) msg.obj);
break;
case MSG_COMPRESS_ERROR:
mCompressListener.onError((Throwable) msg.obj);
break;
}
return false;
}
示例11
public Builder load(final Uri uri) {
mStreamProviders.add(new InputStreamAdapter() {
@Override
public InputStream openInternal() throws IOException {
return context.getContentResolver().openInputStream(uri);
}
@Override
public String getPath() {
return uri.getPath();
}
@Override
public LocalMedia getMedia() {
return null;
}
});
return this;
}
示例12
/**
* 初始化ViewPage数据
*
* @param list
*/
private void initViewPageAdapterData(List<LocalMedia> list) {
adapter = new PictureSimpleFragmentAdapter(config, this);
adapter.bindData(list);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(position);
setTitle();
onImageChecked(position);
LocalMedia media = adapter.getItem(position);
if (media != null) {
index = media.getPosition();
if (config.checkNumMode) {
tvMediaNum.setSelected(true);
check.setText(ValueOf.toString(media.getNum()));
notifyCheckChanged(media);
}
}
}
示例13
/**
* set preview image
*
* @param position
* @param medias
*/
public void externalPicturePreview(int position, List<LocalMedia> medias, int enterAnimation) {
if (!DoubleUtils.isFastDoubleClick()) {
if (getActivity() != null) {
Intent intent = new Intent(getActivity(), PictureExternalPreviewActivity.class);
intent.putParcelableArrayListExtra(PictureConfig.EXTRA_PREVIEW_SELECT_LIST,
(ArrayList<? extends Parcelable>) medias);
intent.putExtra(PictureConfig.EXTRA_POSITION, position);
getActivity().startActivity(intent);
getActivity().overridePendingTransition(enterAnimation != 0
? enterAnimation : R.anim.picture_anim_enter, R.anim.picture_anim_fade_in);
} else {
throw new NullPointerException("Starting the PictureSelector Activity cannot be empty ");
}
}
}
示例14
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.pictureLeftBack) {
onBackPressed();
} else if (id == R.id.iv_play) {
mVideoView.start();
iv_play.setVisibility(View.INVISIBLE);
} else if (id == R.id.tv_confirm) {
List<LocalMedia> result = new ArrayList<>();
result.add(getIntent().getParcelableExtra(PictureConfig.EXTRA_MEDIA_KEY));
setResult(RESULT_OK, new Intent()
.putParcelableArrayListExtra(PictureConfig.EXTRA_SELECT_LIST,
(ArrayList<? extends Parcelable>) result));
onBackPressed();
}
}
示例15
/**
* Update Folder
*
* @param imageFolders
*/
private void updateMediaFolder(List<LocalMediaFolder> imageFolders, LocalMedia media) {
File imageFile = new File(media.getRealPath());
File folderFile = imageFile.getParentFile();
if (folderFile == null) {
return;
}
int size = imageFolders.size();
for (int i = 0; i < size; i++) {
LocalMediaFolder folder = imageFolders.get(i);
String name = folder.getName();
if (TextUtils.isEmpty(name)) {
continue;
}
if (name.equals(folderFile.getName())) {
folder.setFirstImagePath(config.cameraPath);
folder.setImageNum(folder.getImageNum() + 1);
folder.setCheckedNum(1);
folder.getData().add(0, media);
break;
}
}
}
示例16
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
LocalMedia item = getItem(position);
if (item != null) {
holder.viewBorder.setVisibility(item.isChecked() ? View.VISIBLE : View.GONE);
if (config != null && PictureSelectionConfig.imageEngine != null) {
PictureSelectionConfig.imageEngine.loadImage(holder.itemView.getContext(), item.getPath(), holder.ivImage);
}
holder.ivPlay.setVisibility(PictureMimeType.isHasVideo(item.getMimeType()) ? View.VISIBLE : View.GONE);
holder.itemView.setOnClickListener(v -> {
if (listener != null && holder.getAdapterPosition() >= 0) {
listener.onItemClick(holder.getAdapterPosition(), getItem(position), v);
}
});
}
}
示例17
public void bindSelectData(List<LocalMedia> images) {
// 这里重新构构造一个新集合,不然会产生已选集合一变,结果集合也会添加的问题
List<LocalMedia> selection = new ArrayList<>();
int size = images.size();
for (int i = 0; i < size; i++) {
LocalMedia media = images.get(i);
selection.add(media);
}
this.selectData = selection;
if (!config.isSingleDirectReturn) {
subSelectPosition();
if (imageSelectChangedListener != null) {
imageSelectChangedListener.onChange(selectData);
}
}
}
示例18
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 判断是否属于图片选择
if (resultCode == Activity.RESULT_OK && data != null) {
LocalMedia localMedia = PictureSelectorUtils.getSingleMedia(data);
// 获取图片地址
String imgPath = PictureSelectorUtils.getLocalMediaPath(localMedia, true);
// 获取图片 Bitmap
selectBitmap = ImageUtils.decodeFile(imgPath);
// 设置图片滤镜
setFilter();
}
}
示例19
/**
* Just make sure you pick one
*/
private void singleRadioMediaImage() {
List<LocalMedia> selectData = mAdapter.getSelectedData();
if (selectData != null
&& selectData.size() > 0) {
LocalMedia media = selectData.get(0);
int position = media.getPosition();
selectData.clear();
mAdapter.notifyItemChanged(position);
}
}
示例20
/**
* 设置LocalMedia旋转信息
*
* @param context
* @param media
* @param isAndroidQChangeWH
* @return
*/
public static void setOrientationSynchronous(Context context, LocalMedia media,
boolean isAndroidQChangeWH,
boolean isAndroidQChangeVideoWH) {
if (PictureMimeType.isHasImage(media.getMimeType())) {
if (!isAndroidQChangeWH) {
return;
}
}
if (PictureMimeType.isHasVideo(media.getMimeType())) {
if (!isAndroidQChangeVideoWH) {
return;
}
}
// 如果有旋转信息图片宽高则是相反
int orientation = 0;
if (PictureMimeType.isHasImage(media.getMimeType())) {
orientation = MediaUtils.getImageOrientationForUrl(context, media.getPath());
} else if (PictureMimeType.isHasVideo(media.getMimeType())) {
if (PictureMimeType.isContent(media.getPath())) {
orientation = MediaUtils.getVideoOrientationForUri(context, Uri.parse(media.getPath()));
} else {
orientation = MediaUtils.getVideoOrientationForUrl(media.getPath());
}
}
if (orientation == ExifInterface.ORIENTATION_ROTATE_90
|| orientation == ExifInterface.ORIENTATION_ROTATE_270) {
int width = media.getWidth();
int height = media.getHeight();
media.setWidth(height);
media.setHeight(width);
}
media.setOrientation(orientation);
}
示例21
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 判断是否属于图片选择
if (resultCode == Activity.RESULT_OK && data != null) {
LocalMedia localMedia = PictureSelectorUtils.getSingleMedia(data);
// 获取图片地址
String imgPath = PictureSelectorUtils.getLocalMediaPath(localMedia, true);
// 获取图片 Bitmap
Bitmap selectBitmap = ImageUtils.decodeFile(imgPath);
// 解析图片
ZXingQRCodeUtils.decodeQRCode(selectBitmap, new ZXingQRCodeUtils.QRScanCallBack() {
@Override
public void onResult(boolean success, Result result, Exception e) {
HandlerUtils.postRunnable(new Runnable() {
@Override
public void run() {
if (success) {
handleDecode(result, new Bundle());
} else {
showToast(false, "图片非二维码 / 识别失败");
}
}
});
}
});
}
}
示例22
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 判断是否属于图片选择
if (resultCode == Activity.RESULT_OK && data != null) {
LocalMedia localMedia = PictureSelectorUtils.getSingleMedia(data);
// 获取图片地址
String imgPath = PictureSelectorUtils.getLocalMediaPath(localMedia, true);
// 获取图片 Bitmap
selectBitmap = ImageUtils.decodeFile(imgPath);
// 设置图片滤镜
setFilter();
}
}
示例23
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
// 图片选择结果回调
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
// 例如 LocalMedia 里面返回五种path
// 1.media.getPath(); 为原图path
// 2.media.getCutPath();为裁剪后path,需判断media.isCut();是否为true
// 3.media.getCompressPath();为压缩后path,需判断media.isCompressed();是否为true
// 4.media.getOriginalPath()); media.isOriginal());为true时此字段才有值
// 5.media.getAndroidQToPath();为Android Q版本特有返回的字段,此字段有值就用来做上传使用
// 如果同时开启裁剪和压缩,则取压缩路径为准因为是先裁剪后压缩
for (LocalMedia media : selectList) {
Log.i(TAG, "是否压缩:" + media.isCompressed());
Log.i(TAG, "压缩:" + media.getCompressPath());
Log.i(TAG, "原图:" + media.getPath());
Log.i(TAG, "是否裁剪:" + media.isCut());
Log.i(TAG, "裁剪:" + media.getCutPath());
Log.i(TAG, "是否开启原图:" + media.isOriginal());
Log.i(TAG, "原图路径:" + media.getOriginalPath());
Log.i(TAG, "Android Q 特有Path:" + media.getAndroidQToPath());
}
mAdapter.setList(selectList);
mAdapter.notifyDataSetChanged();
break;
}
}
}
示例24
@Override
public void onItemClick(int position, boolean isCameraFolder, long bucketId, String
folderName, List<LocalMedia> data) {
boolean camera = config.isCamera && isCameraFolder;
mAdapter.setShowCamera(camera);
mTvPictureTitle.setText(folderName);
long currentBucketId = ValueOf.toLong(mTvPictureTitle.getTag(R.id.view_tag));
mTvPictureTitle.setTag(R.id.view_count_tag, folderWindow.getFolder(position) != null
? folderWindow.getFolder(position).getImageNum() : 0);
if (config.isPageStrategy) {
if (currentBucketId != bucketId) {
setLastCacheFolderData();
boolean isCurrentCacheFolderData = isCurrentCacheFolderData(position);
if (!isCurrentCacheFolderData) {
mPage = 1;
showPleaseDialog();
LocalMediaPageLoader.getInstance(getContext(), config).loadPageMediaData(bucketId, mPage,
(OnQueryDataResultListener<LocalMedia>) (result, currentPage, isHasMore) -> {
this.isHasMore = isHasMore;
if (!isFinishing()) {
if (result.size() == 0) {
mAdapter.clear();
}
mAdapter.bindData(result);
mRecyclerView.onScrolled(0, 0);
mRecyclerView.smoothScrollToPosition(0);
dismissDialog();
}
});
}
}
} else {
mAdapter.bindData(data);
mRecyclerView.smoothScrollToPosition(0);
}
mTvPictureTitle.setTag(R.id.view_tag, bucketId);
folderWindow.dismiss();
}
示例25
@Override
public void onCustomPreviewCallback(Context context, List<LocalMedia> previewData, int currentPosition) {
// TODO context特指PictureSelectorActivity
if (previewData != null && previewData.size() > 0) {
LocalMedia currentLocalMedia = previewData.get(currentPosition);
if (currentLocalMedia != null) {
}
}
}
示例26
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
// 图片选择结果回调
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
// 例如 LocalMedia 里面返回五种path
// 1.media.getPath(); 原图path
// 2.media.getCutPath();裁剪后path,需判断media.isCut();切勿直接使用
// 3.media.getCompressPath();压缩后path,需判断media.isCompressed();切勿直接使用
// 4.media.getOriginalPath()); media.isOriginal());为true时此字段才有值
// 5.media.getAndroidQToPath();Android Q版本特有返回的字段,但如果开启了压缩或裁剪还是取裁剪或压缩路径;注意:.isAndroidQTransform 为false 此字段将返回空
// 如果同时开启裁剪和压缩,则取压缩路径为准因为是先裁剪后压缩
for (LocalMedia media : selectList) {
Log.i(TAG, "是否压缩:" + media.isCompressed());
Log.i(TAG, "压缩:" + media.getCompressPath());
Log.i(TAG, "原图:" + media.getPath());
Log.i(TAG, "是否裁剪:" + media.isCut());
Log.i(TAG, "裁剪:" + media.getCutPath());
Log.i(TAG, "是否开启原图:" + media.isOriginal());
Log.i(TAG, "原图路径:" + media.getOriginalPath());
Log.i(TAG, "Android Q 特有Path:" + media.getAndroidQToPath());
Log.i(TAG, "宽高: " + media.getWidth() + "x" + media.getHeight());
Log.i(TAG, "Size: " + media.getSize());
// TODO 可以通过PictureSelectorExternalUtils.getExifInterface();方法获取一些额外的资源信息,如旋转角度、经纬度等信息
}
mAdapter.setList(selectList);
mAdapter.notifyDataSetChanged();
break;
}
}
}
示例27
/**
* singleDirectReturn
*
* @param mimeType
*/
private void singleDirectReturnCameraHandleResult(String mimeType) {
boolean isHasImage = PictureMimeType.isHasImage(mimeType);
if (config.enableCrop && isHasImage) {
config.originalPath = config.cameraPath;
startCrop(config.cameraPath, mimeType);
} else if (config.isCompress && isHasImage) {
List<LocalMedia> selectedImages = mAdapter.getSelectedData();
compressImage(selectedImages);
} else {
onResult(mAdapter.getSelectedData());
}
}
示例28
@Override
protected void onSelectedChange(boolean isAddRemove, LocalMedia media) {
if (isAddRemove) {
media.setChecked(true);
if (config.selectionMode == PictureConfig.SINGLE) {
mGalleryAdapter.addSingleMediaToData(media);
}
} else {
media.setChecked(false);
mGalleryAdapter.removeMediaToData(media);
if (isBottomPreview) {
if (selectData != null && selectData.size() > position) {
selectData.get(position).setChecked(true);
}
if (mGalleryAdapter.isDataEmpty()) {
onActivityBackPressed();
} else {
int currentItem = viewPager.getCurrentItem();
adapter.remove(currentItem);
adapter.removeCacheView(currentItem);
position = currentItem;
tvTitle.setText(getString(R.string.picture_preview_image_num,
position + 1, adapter.getSize()));
check.setSelected(true);
adapter.notifyDataSetChanged();
}
}
}
int itemCount = mGalleryAdapter.getItemCount();
if (itemCount > 5) {
mRvGallery.smoothScrollToPosition(itemCount - 1);
}
}
示例29
@Override
protected void onPageSelectedChange(LocalMedia media) {
super.onPageSelectedChange(media);
goneParent();
if (!config.previewEggs) {
onChangeMediaStatus(media);
}
}
示例30
/**
* Returns a file with a cache image name in the private cache directory.
*
* @param context A context.
*/
private File getImageCacheFile(Context context, InputStreamProvider provider, String suffix) {
if (TextUtils.isEmpty(mTargetDir)) {
File imageCacheDir = getImageCacheDir(context);
if (imageCacheDir != null) {
mTargetDir = imageCacheDir.getAbsolutePath();
}
}
String cacheBuilder = "";
try {
LocalMedia media = provider.getMedia();
String encryptionValue = StringUtils.getEncryptionValue(media.getPath(), media.getWidth(), media.getHeight());
if (!TextUtils.isEmpty(encryptionValue) && !media.isCut()) {
cacheBuilder = mTargetDir + "/" +
"IMG_CMP_" +
encryptionValue +
(TextUtils.isEmpty(suffix) ? ".jpg" : suffix);
} else {
cacheBuilder = mTargetDir +
"/" +
DateUtils.getCreateFileName("IMG_CMP_") +
(TextUtils.isEmpty(suffix) ? ".jpg" : suffix);
}
} catch (Exception e) {
e.printStackTrace();
}
return new File(cacheBuilder);
}