Как обрезать изображение в Android marshmallow, используя намерение обрезки по умолчанию?

#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 используйте эту демонстрацию. Это очень старая библиотека, но она стабильна на всех разных устройствах.