Я пытаюсь обрезать изображение после его ввода, а мой код выглядит следующим образом:
private void doTakePhotoAction() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 96);
intent.putExtra("outputY", 96);
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (ActivityNotFoundException e) {
//Do nothing for now
}
}
С приведенным выше кодом я могу перейти в режим обрезки и обрезать изображение. Однако соотношение сторон 1:1 не применяется, и ни один из них не является outputX и outputY. Я считаю, что это связано с тем, что целью было сделать снимок, а не подрезать. Я также написал еще один метод getData() из Intent и после этого использовал следующее:
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setClassName("com.android.camera", "com.android.camera.CropImage");
Однако, когда я это делаю, я получаю следующую ошибку времени выполнения:
E/AndroidRuntime(14648): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.camera/com.android.camera.CropImage}: java.lang.NullPointerException
Спасибо за помощь!:)