Intent intent = new Intent("com.android.camera.action.CROP");
File path = this.getExternalFilesDir("tmp");
File file = new File(path, "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
Uri tmpUri = Uri.fromFile(file);
intent.setData(selectedImage);
intent.putExtra(MediaStore.EXTRA_OUTPUT, tmpUri);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("crop", "true");
intent.putExtra("scale", "true");
intent.putExtra("outputX", 100);
intent.putExtra("outputY", 100);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("return-data", false);
startActivityForResult(intent, REQUEST_CROP);
Я использую этот код для обрезки изображения. Он отлично работает на Android 2.x. Но на 3.1 (motorola xoom) и 3.2 (acer iconia) приложение зависает после выбора области обрезки и нажатия «Сохранить» (onActivityResult даже не вызывается). Существует переменная Uri для реального изображения в переменной selectedImage, поэтому проблема не в этом.
На эмуляторах андроида 3.1 и 3.2 приложение тоже отлично работает.
Кто-нибудь знает в чем проблема?