功能很简单,话不多说直接上代码~~~~~~~~~~~~~
private String path= Environment.getExternalStorageDirectory().getPath()+"/head.jpg";//图片路径
private File file;//上传的文件
//调用相机
Intent it =newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
// 将图片存入Sdcard
it.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(newFile(path)));
startActivityForResult(it,2000);
//调用相册
Intent intent =newIntent(Intent.ACTION_PICK);
//设置取回的数据类型
intent.setType("image/*");
startActivityForResult(intent,4000);
//回调方法
//相机 相册的回调方法
@Override
protected void onActivityResult(intrequestCode,intresultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 2.拍照完以后进行裁剪
// RESULT_OK:-->是常亮,代表返回操作成功;
if(requestCode ==2000&& resultCode ==RESULT_OK) {
// 2.调取系统的裁剪
Intent it =new Intent("com.android.camera.action.CROP");
// 拿到图片 type 图片的类型
it.setDataAndType(Uri.fromFile(newFile(path)),"image/*");
// 是否支持裁剪
it.putExtra("crop",true);
// 设置宽高比
it.putExtra("aspectX",1);
it.putExtra("aspectY",1);
// 设置图片输出的大小
it.putExtra("outputX",250);
it.putExtra("outputY",250);
// 是否支持人脸识别
it.putExtra("onFaceDetection",false);
it.putExtra("return-data",true);
// 剪裁完之后,发送startActivityForResult;
startActivityForResult(it,3000);
}
// 2.设置图片
if(requestCode ==3000&& resultCode ==RESULT_OK) {
Bitmap bitmap = data.getParcelableExtra("data");
ivTou.setImageBitmap(bitmap);
try{
//Bitmap对象保存味图片文件
//将要保存图片的路径
file=newFile(path);
BufferedOutputStream bos =newBufferedOutputStream(newFileOutputStream(file));
bitmap.compress(Bitmap.CompressFormat.JPEG,100, bos);
bos.flush();
bos.close();
}catch(IOException e) {
e.printStackTrace();
}
}
// 3.调取完系统的相册后 进行裁剪
if(requestCode ==4000&& resultCode ==RESULT_OK) {
// 得到相册的图片的路径,直接用这个getData;
Uri uri = data.getData();
// 3.调取系统的裁剪
Intent it =new Intent("com.android.camera.action.CROP");
// 拿到图片 type 图片的类型
it.setDataAndType(uri,"image/*");
// 是否支持裁剪
it.putExtra("crop",true);
// 设置宽高比
it.putExtra("aspectX",1);
it.putExtra("aspectY",1);
// 设置图片输出的大小
it.putExtra("outputX",250);
it.putExtra("outputY",250);
// 是否支持人脸识别
it.putExtra("onFaceDetection",false);
it.putExtra("return-data",true);
startActivityForResult(it,3000);
}
}