//监听使用intent,隐式跳转,调用系统相册 xiangce.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent2 = new Intent(Intent.ACTION_PICK, null); intent2.setType("image/*"); startActivityForResult(intent2, 2); } }); //调用系统相机 caream.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent1, 1); } });
//回传值,3个方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { geta(requestCode, resultCode, data); getb(requestCode, resultCode, data); getc(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data); }
//相册并裁减 private void getc(int requestCode, int resultCode, Intent data) { //得到相册里的图片进行裁剪 if (requestCode==2 && resultCode==RESULT_OK) { //得到相册图片 Uri uri=data.getData(); //裁剪 Intent intent = new Intent("com.android.camera.action.CROP"); //设置图片 以及格式 intent.setDataAndType(uri, "image/*"); //是否支持裁剪 intent.putExtra("crop", true); //设置比例 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); //设置输出的大小 intent.putExtra("outputX", 250); intent.putExtra("outputY", 250); //是否支持人脸识别 // intent.putExtra("onFaceDetection", true); //返回 intent.putExtra("return-data", true); startActivityForResult(intent, 9); } //2.点击裁剪完成 if (requestCode==9 && resultCode==RESULT_OK) { bm = data.getParcelableExtra("data"); simpleDraweeView.setImageBitmap(bm); } }
//相机裁剪 private void getb(int requestCode, int resultCode, Intent data) { //当拍完照以后点击完成 会执行 onActivityResult 方法 调取裁剪功能 if (requestCode==1 && resultCode==RESULT_OK) { //调取裁剪功能 om.android.camera.action.CROP 裁剪的Action Intent intent = new Intent("com.android.camera.action.CROP"); //得到图片设置类型 intent.setDataAndType(Uri.fromFile(new File(path)), "image/*"); //是否支持裁剪 设置 true 支持 false 不支持 intent.putExtra("CROP", true); //设置比例大小 1:1 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); //输出的大小 intent.putExtra("outputX", 250); intent.putExtra("outputY", 250); //将裁剪好的图片进行返回到Intent中 intent.putExtra("return-data", true); startActivityForResult(intent, 5); } //点击完裁剪的完成以后会执行的方法 if (requestCode==5 && resultCode==RESULT_OK) { Bitmap bm=data.getParcelableExtra("data"); simpleDraweeView.setImageBitmap(bm); } }
//相机拍照完成后 private void geta(int requestCode, int resultCode, Intent data) { if (requestCode==1 && resultCode==RESULT_OK) { //取出图片 Bitmap bm=data.getParcelableExtra("data"); //设置图片 simpleDraweeView.setImageBitmap(bm); } }