调用相机相册实现头像上传

功能很简单,话不多说直接上代码~~~~~~~~~~~~~

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);

}

}

你可能感兴趣的:(调用相机相册实现头像上传)