您的位置:首页 > 移动开发 > Android开发

关于Android 选择相册图片裁剪的坑

2015-06-11 15:50 435 查看
选择相册

这是一个通用的选择相册的方法.

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);//ACTION_OPEN_DOCUMENT
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, SELECT_PIC);


在onActivityForResult获取data。至于怎么获取图片uri可以参考一下链接
http://blog.csdn.net/tempersitu/article/details/20557383


2.图片裁剪

/**
* 调用系统裁剪图片的方法,可以选择参数为Uri对象 或者 Bitmap对象
*
* @param uri
*/
public void cropPhoto(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
//IMAGE_UNSPECIFIED = "image/*"
intent.setDataAndType(uri, IMAGE_UNSPECIFIED);
// 发送裁剪信号
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪输出图片宽高
intent.putExtra("outputX", 400);
intent.putExtra("outputY", 400);
//注意这里,scale参数的意思是是否保留原有尺寸,
//如果为true,则截取的图片无论大小尺寸就是所设outputX,outputY。
//但是,但是,但是!重要的事情说三遍.
//如果截图的图片小雨所设的宽高,你截取的图片会居中,图片周围黑色填满,.经测只有部分国产手机会这样
intent.putExtra("scale", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
// intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);//直接输出文件uri,如果想保留原有图片则新建一个图片文件传入uri
intent.putExtra("noFaceDetection", true); //关闭人脸检测
intent.putExtra("return-data", false); // 是否返回数据,如果用于屏幕显示缩略图,则传入true,一般直接取uri就可以了
startActivityForResult(intent, REQUEST_CODE_CUT);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android