Код, который регистрирует средства запуска для выбора медиафайлов и обрезки:
Код: Выделить всё
mediaPickerLauncher = activity.registerForActivityResult(
ActivityResultContracts.PickVisualMedia()
) { uri ->
pickerCallback(uri)
}
cropResultLauncher = activity.registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data: Intent? = result.data
Log.d("Crop", "Photo received")
}
else {
Log.d("Crop", "Cancelled!")
}
}
Код: Выделить всё
pickerCallbackКод: Выделить всё
val intent = Intent("com.android.camera.action.CROP")
intent.setData(uri)
intent.putExtra("crop", "true")
// Set the aspect ratio to 1:1 (square)
intent.putExtra("aspectX", 1)
intent.putExtra("aspectY", 1)
// Set the resolution to 500x500
intent.putExtra("outputX", 500)
intent.putExtra("outputY", 500)
// Set a few more flags
intent.putExtra("return-data", true)
cropResultLauncher!!.launch(intent)
Подробнее здесь: https://stackoverflow.com/questions/788 ... oto-picker
Мобильная версия