调用系统相册后选择相片 然后调用系统剪裁页面 发现别的手机都好使 魅族到剪裁页面一直处于加载中相片显示不出来,后来研究后发现选择相片后我把相片设置到了自定义文件夹,魅族手机读不出来,这样的话选择相片只能读取相片本身所在图库的路径进行剪裁。
修改前:
/**
* 选择图片
*/
private void startActionPickCrop() {
String status=Environment.getExternalStorageState();
if(status.equals(Environment.MEDIA_MOUNTED)){
File dir=new File(Constants.POST_ORIGINAL_PHOTO);
if(!dir.exists()){
dir.mkdirs();
}
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
File file = new File(dir, String.valueOf(System.currentTimeMillis())+ ".jpg");
path = file.getPath();
Uri imageUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
// intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("scale", true);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true);
startActivityForResult(intent, Constants.ALBUM_PICTURE);
}else {
Toast.makeText(Ask_Activity.this, "没有检测到SdCard卡",Toast.LENGTH_LONG).show();
}
修改后:
/**
* 选择图片
*/
private void startActionPickCrop() {
String status=Environment.getExternalStorageState();
if(status.equals(Environment.MEDIA_MOUNTED)){
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setType("image/*");
startActivityForResult(intent, Constants.ALBUM_PICTURE);
}else {
Toast.makeText(Ask_Activity.this, "没有检测到SdCard卡",Toast.LENGTH_LONG).show();
}
回调:
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case Constants.TAKE_PICTURE:
startPhotoCrop(imageUri);
break;
case Constants.ALBUM_PICTURE:
if(data!=null){d
Uri selectedImage = data.getData(); //获取系统返回的照片的Uri 此处的uri是图片所在系统图库的路径
startPhotoCrop(selectedImage);
}
break;