Android调用相册截取图片遇到的问题
1.在Android中可以使用如下的方式来调用相册,选择图片进行裁剪使用,昨天在开发的时候遇到一个问题
private void cropBigImageUri(Uri uri, int outputX, int outputY, int requestCode) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 641);
intent.putExtra("aspectY", 361);
intent.putExtra("outputX", outputX);
intent.putExtra("outputY", outputY);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true);
startActivityForResult(intent, requestCode);
}
2.问题描述如下:
在调用相册选择图片以后,需要对图片按照比列进行裁剪,裁剪后会修改原图。
3.原因分析:
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);输出时传入的uri是选择的原图的uri,裁剪后新图片的输出保存会覆盖原图uri
4.解决办法:
不使用原图的uri进行保存,建立一个新的uri进行保存裁剪后的图片
String sdcardPathDir = android.os.Environment.getExternalStorageDirectory().getPath() + "xxx/photo/";
// 有sd卡,是否有myImage文件夹
File fileDir = new File(sdcardPathDir);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
// 获取系统时间 然后将裁剪后的图片保存至指定的文件夹
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
address = sDateFormat.format(new java.util.Date());
if (!FileUtils.isFileExist("")) {
try {
FileUtils.createSDDir("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 这里需要和FileUtils.SDPATH 一致,而且在之前要创建文件夹
Uri imageUri = Uri.parse("file:///sdcardxxxx/photo/thumb" + address + ".jpg");
然后使用intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri );
最新文章
- C#基础---Attribute(标签) 和 reflect(反射) 应用二
- 论SOA架构的几种主要开发方式
- DPDK内存管理(1)
- oracle 单列索引 多列索引的性能测试
- wkhtmltopdf 中文参数详解
- 【转】Java八种基本数据类型的比较及其相互转化
- android 安装应用程序apk安装不了
- Matlab与微积分计算
- 【SPOJ 2319】 BIGSEQ - Sequence (数位DP+高精度)
- python-Pickle序列化
- 使用libevent进行多线程socket编程demo
- BIN和HEX文件的区别
- POJ 2029 DP || 暴力
- 将 子集和问题 运行时间从 200.8s 优化到 0.4s
- Python练习100则--部分概念的没有做
- mvc上传图片
- Python的命名空间及作用域
- 12-openldap使用AD密码
- 简单web测试流程(转载)
- 从C#到TypeScript - 类型
热门文章
- Android与Mysql服务器通信
- linux 配置免密码登录
- hdu5909-Tree Cutting(树形dp)
- 软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] [附加题]
- 高版本myeclipse破解以及优化
- curl命令的基本用法
- poj 3180 The Cow Prom(强联通分量)
- POJ Wormholes (SPFA)
- 解决Failed to execute goal org.apache.maven.plugins
- Excel Xll开发资料