#android #android-intent #crop #android-6.0-marshmallow #android-crop
#Android #android-намерение #обрезка #android-6.0-marshmallow #android-обрезка
Вопрос:
В моем приложении требуется выбрать изображение из галереи, а затем обрезать выбранное изображение и установить значение imageview. Ниже приведен мой пример кода для обрезки изображения.
//call the standard crop action intent (the user device may not support it)
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setClassName("com.android.camera", "com.android.camera.CropImage");
//indicate image type and Uri
cropIntent.setDataAndType(mImageCaptureUri, "image/*");
//set crop properties
cropIntent.putExtra("crop", "true");
//indicate aspect of desired crop
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
//indicate output X and Y
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
//retrieve data on return
cropIntent.putExtra("return-data", true);
cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
cropIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
//start the activity - we handle returning in onActivityResult
startActivityForResult(cropIntent, PIC_CROP);
Приведенный выше код отлично работает в нижеприведенных устройствах Android marshmallow, но android marsh mallow выходит из строя.Как решить проблему?
Комментарии:
1. Android не имеет
CROP
Intent
. Для Android доступно множество библиотек обрезки изображений . Пожалуйста, используйте один.2. @CommonsWare Спасибо за ответ, android marshmallow не имеет намерения обрезки?
3. @CommonsWare я пытался добавить библиотеки обрезки, но размер приложения увеличивается. Именно по этой причине я ищу обрезку по умолчанию
4.Ни одна версия ОС Android не имеет
CROP
Intent
. Вы используете недокументированное неподдерживаемоеIntent
действие, изначально созданное для определенного приложения камеры. Некоторые другие приложения для камеры могут поддерживать этоIntent
. Некоторые устройства Android могут поставляться с одним из этих приложений для камеры. Но существуют тысячи моделей устройств Android, и не на всех из них будет предварительно установлено приложение, поддерживающее этоIntent
. «Вот почему я ищу обрезку по умолчанию» — в Android нет «обрезки по умолчанию«.5. @CommonsWare Спасибо, пожалуйста, предложите какую-либо библиотеку обрезки?
Ответ №1:
Самый простой способ реализовать камеру и галерею с обрезкой — использовать library.in на рынке доступно так много сторонних библиотек, но ни одна из них не работает для всех устройств. Доступна одна библиотека, которая стабильна на устройствах deferent и нескольких компаний. https://github.com/biokys/cropimage используйте эту демонстрацию. Это очень старая библиотека, но она стабильна на всех разных устройствах.