Bundle bundle = data.getExtras();
Bitmap bitmap = bundle.getParcelable("data");
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
public static int TAKE_PHOTO_REQUEST_CODE = 1; //拍照
public static int PHOTO_REQUEST_CUT = 2; //裁切
public static int PHOTO_REQUEST_GALLERY = 3; //相册
public Uri imageUri;
/**
* 打开相机拍照
*/
private void takePhotos() {
imageUri = Uri.fromFile(getImageStoragePath(this));
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//指定照片存储路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent,TAKE_PHOTO_REQUEST_CODE);
}
/**
* 打开相册选择图片
*/
private void choicePicFromAlbum() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, PHOTO_REQUEST_GALLERY);
}
/**
* 设置图片保存路径
* @return
*/
private File getImageStoragePath(Context context){
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES),"temp.jpg");
return file;
}
return null;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO_REQUEST_CODE){
if (imageUri != null){
startPhotoZoom(imageUri);
}
}else if (requestCode == PHOTO_REQUEST_CUT){
if (imageUri != null) {
Bitmap bitmap = decodeUriBitmap(imageUri);
imageView.setImageBitmap(bitmap);
}
}else if (requestCode == PHOTO_REQUEST_GALLERY){
if (data != null) {
imageUri = data.getData();
Bitmap bitmap = decodeUriBitmap(imageUri);
imageView.setImageBitmap(bitmap);
}
}
}
private Bitmap decodeUriBitmap(Uri uri) {
Bitmap bitmap = null;
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
return bitmap;
}
/**
* 调用系统裁剪
*
* @param uri
*/
public void startPhotoZoom(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// crop为true是设置在开启的intent中设置显示的view可以剪裁
intent.putExtra("crop", "true");
intent.putExtra("scale", true);
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX,outputY 是剪裁图片的宽高
intent.putExtra("outputX", 800);
intent.putExtra("outputY", 800);
//设置了true的话直接返回bitmap,可能会很占内存
intent.putExtra("return-data", false);
//设置输出的格式
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
//设置输出的地址
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
//不启用人脸识别
intent.putExtra("noFaceDetection", true);
startActivityForResult(intent, PHOTO_REQUEST_CUT);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有