Как заполнить контекст «это» в библиотеке компрессора в Android Studio - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь написать код для сжатия изображения, используя библиотеку Compressor: https://github.com/zetbaitsu/Compressor и использую эту строку для сжатия:

compressedImageFile = new Compressor(this).compressToFile(actualImageFile);

Однако при сборке приложения я получил следующее сообщение об ошибке:

ошибка: несовместимые типы: PictureOneFragment не может быть преобразован в контекст

Я изменил «this» на getActivity (). Я получил другое сообщение об ошибке:

ошибка: незарегистрированное исключение IOException; должен быть пойман или объявлен брошенным

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_PICTURE_CAPTURE && resultCode == Activity.RESULT_OK) {

            File imgFile = new  File(pictureFilePath);

            if(imgFile.exists()) {
                File compressedImageFile = new Compressor(getActivity()).compressToFile(imgFile);

                try {

                    mPage.getData().putString(PictureOnePage.PICTURE_NAME + "_" + mPage.getTitle().trim(), pictureFilePath);
                    mPage.notifyDataChanged();

                    bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), Uri.fromFile(imgFile));
                    mImgView.setImageBitmap(bitmap);

                } catch (IOException e) {
                    Log.i("eProject : ", e.toString());
                    e.printStackTrace();
                }

            }

        }
    }

Каков правильный контекст для библиотеки Compressor?

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Просто обрежьте строку:

File compressedImageFile = new Compressor(getActivity()).compressToFile(imgFile);

И поместите ее в блок try под ним.
Это так просто, потому что это также может вызвать IOException.

0 голосов
/ 10 мая 2019

только небольшое изменение, вам нужно создать экземпляр файла и экземпляр cropImage

между попытка {
.... } catch (IOException e) { ... }
потому что оба могут генерировать IOException во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...