获取系统相册并裁剪图片

来源:互联网 发布:甲骨文广播铃声软件 编辑:程序博客网 时间:2024/06/13 10:37

//从系统的相册中获取一张图片

   private void pickPictureFromSystemGallery() {       Intent intent = new Intent();       intent.setAction(Intent.ACTION_PICK);       intent.setType("image/*");       startActivityForResult(intent, 100);   }

// 剪切图片

  private void crop(Uri uri) {       // 裁剪图片意图       Intent intent = new Intent("com.android.camera.action.CROP");       intent.setDataAndType(uri, "image/*");       intent.putExtra("crop", "true");       // 裁剪框的比例,1:1       intent.putExtra("aspectX", 1);       intent.putExtra("aspectY", 1);       // 裁剪后输出图片的尺寸大小       intent.putExtra("outputX", 250);       intent.putExtra("outputY", 250);       intent.putExtra("outputFormat", "JPEG");// 图片格式       intent.putExtra("noFaceDetection", true);// 取消人脸识别       intent.putExtra("return-data", true);       // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT       startActivityForResult(intent, 200);   }
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {           super.onActivityResult(requestCode, resultCode, data); switch (requestCode) {    case 100://从系统相册返回的           if (data != null) {               Uri uri = data.getData();               if (uri != null) {                   //调用系统的图片裁剪                   crop(uri);               }           }           break;    case 200:           Bitmap bitmap = data.getParcelableExtra("data");           if (bitmap != null) {               //显示图片               ivIcon.setImageBitmap(bitmap);               changeNextButtonState();               try {                   //保存图片(/data/packagename/files) FileOutputStream stream = openFileOutput(user.getNickname() + ".jpg", Context.MODE_PRIVATE);                   bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);               } catch (Exception e) {               }           }           break;   }

}
“`

阅读全文
0 0
原创粉丝点击