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)