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

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

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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值