美文网首页
调用相机相册实现头像上传

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

作者: 天天大保建 | 来源:发表于2017-10-21 09:12 被阅读0次

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

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

    }

    }

    相关文章

      网友评论

          本文标题:调用相机相册实现头像上传

          本文链接:https://www.haomeiwen.com/subject/muzbuxtx.html