Ucrop onActivityMethod не работает

Я использовал приведенный ниже код из библиотеки ucrop, и окно обрезки появляется.

 Uri destinationUri = Uri.fromFile(new File(myContext.getCacheDir(), "IMG_" + System.currentTimeMillis()));
            UCrop.of(sourceUri, destinationUri)
                     .withMaxResultSize(maxWidth, maxHeight)
                    .start(myContext);

но управление не входит в метод onActivityResult. Если / иначе оба не работают.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
        final Uri resultUri = UCrop.getOutput(data);
    } else if (resultCode == UCrop.RESULT_ERROR) {
        final Throwable cropError = UCrop.getError(data);
    }
}

Есть идеи, что случилось, я что-то пропустил?

3 ответа

Решение
Uri destinationUri = Uri.fromFile(new File(myContext.getCacheDir(), "IMG_" + System.currentTimeMillis()));
                UCrop.of(sourceUri, destinationUri)
                .withMaxResultSize(1080, 768) // any resolution you want
                .start(mContext, YourFragment/YourActivity.this);

Изменение кода вызова на ниже работает.

    Uri destinationUri = Uri.fromFile(new File(myContext.getCacheDir(), "IMG_" + System.currentTimeMillis()));
    startActivityForResult(UCrop.of(sourceUri, destinationUri)
             .withMaxResultSize(maxWidth, maxHeight)
            .getIntent(getContext()),UCrop.REQUEST_CROP);

я должен был пройти contextа также fragmentтак вот как я сделал в kotlin

      UCrop.of(sourceFile.toUri(), destinationFile.toUri())
   .withAspectRatio(1.toFloat(), 1.toFloat())
   .start(requireContext(), this)
Другие вопросы по тегам