Androidはシステムを呼び出して画像を縮小し、Android.os.Transaction TooLarge Exception:data parel size 642356 bytesが現れます.

1155 ワード

1、Android写真とアルバム+システム裁断機能は画像に戻ります.http://blog.csdn.net/why110999784/article/details/52460403
2、画像削減時に伝達されるreturn-dataはtrueに設定されています.onActivityResoultのIntentでdataの値はBitmapオブジェクトを持っています.画像が大きすぎたり縮小されたりすると、android.Transaction TooLargeException:data parcent 64236 bytetsオブジェクトがエラーで伝達されます.この時はMedia Store.EXTRA_しか通過できません.OUTUT設定は、画像の保存位置を削減し、画像経路のみを伝達し、直接にbitmapオブジェクトを転送しない.
 private void cropImageUri(Uri uri, int outputX, int outputY, int requestCode){
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");// mUri        Uri
        intent.putExtra("crop", "true");
        intent.putExtra("aspectX", 1);//      
        intent.putExtra("aspectY", 1);
        intent.putExtra("outputX", outputX);//       
        intent.putExtra("outputY", outputY);
        intent.putExtra("return-data", false);
        intent.putExtra("noFaceDetection", true); // no face detection
        intent.putExtra(MediaStore.EXTRA_OUTPUT, saveUri);
        startActivityForResult(intent, requestCode);
    }