//从系统的相册中获取一张图片
private void pickPictureFromSystemGallery() {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 100);
}
// 剪切图片
private void crop(Uri uri) {
// 裁剪图片意图
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
// 裁剪框的比例,1:1
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// 裁剪后输出图片的尺寸大小
intent.putExtra("outputX", 250);
intent.putExtra("outputY", 250);
intent.putExtra("outputFormat", "JPEG");// 图片格式
intent.putExtra("noFaceDetection", true);// 取消人脸识别
intent.putExtra("return-data", true);
// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT
startActivityForResult(intent, 200);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 100://从系统相册返回的
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
//调用系统的图片裁剪
crop(uri);
}
}
break;
case 200:
Bitmap bitmap = data.getParcelableExtra("data");
if (bitmap != null) {
//显示图片
ivIcon.setImageBitmap(bitmap);
changeNextButtonState();
try {
//保存图片(/data/packagename/files)
FileOutputStream stream = openFileOutput(user.getNickname() + ".jpg", Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
} catch (Exception e) {
}
}
break;
}
}
“`