dependencies {
implementation( " com.vanniktech:android-image-cropper:4.6.0 " )
}
Есть 3 способа использования библиотеки. Проверьте пример приложения для всех деталей.
Примечание: этот способ устарел и будет удален в будущих версиях. Переход - это написать свою собственную деятельность, обрабатывать все вещи Uri
и использовать CropImageView
.
class MainActivity : AppCompatActivity () {
private val cropImage = registerForActivityResult( CropImageContract ()) { result ->
if (result.isSuccessful) {
// Use the cropped image URI.
val croppedImageUri = result.uriContent
val croppedImageFilePath = result.getUriFilePath( this ) // optional usage
// Process the cropped image URI as needed.
} else {
// An error occurred.
val exception = result.error
// Handle the error.
}
}
private fun startCrop () {
// Start cropping activity with guidelines.
cropImage.launch(
CropImageContractOptions (
cropImageOptions = CropImageOptions (
guidelines = Guidelines . ON
)
)
)
// Start cropping activity with gallery picker only.
cropImage.launch(
CropImageContractOptions (
pickImageContractOptions = PickImageContractOptions (
includeGallery = true ,
includeCamera = false
)
)
)
// Start cropping activity for a pre-acquired image with custom settings.
cropImage.launch(
CropImageContractOptions (
uri = imageUri,
cropImageOptions = CropImageOptions (
guidelines = Guidelines . ON ,
outputCompressFormat = Bitmap . CompressFormat . PNG
)
)
)
}
// Call the startCrop function when needed.
}
Примечание. Это единственный путь вперед, добавьте CropImageView
в свою деятельность и делайте все, что вы хотите. Проверьте образец для получения более подробной информации.
<!-- Image Cropper fill the remaining available height -->
< com .canhub.cropper.CropImageView
android : id = " @+id/cropImageView "
android : layout_width = " match_parent "
android : layout_height = " 0dp "
android : layout_weight = " 1 "
/>
cropImageView.setImageUriAsync(uri)
// Or prefer using uri for performance and better user experience.
cropImageView.setImageBitmap(bitmap)
// Subscribe to async event using cropImageView.setOnCropImageCompleteListener(listener)
cropImageView.getCroppedImageAsync()
// Or.
val cropped : Bitmap = cropImageView.getCroppedImage()
Примечание: этот способ также устарел и будет удален в будущих версиях. Переход - это написать свою собственную деятельность, справиться со всеми материалами Uri
и использовать CropImageView
.
Если CropImageView
хотите продлить CropImageActivity
, имейте в виду
CropImageActivity
в свой AndroidManifest.xml <!-- Theme is optional and only needed if default theme has no action bar. -->
< activity
android : name = " com.canhub.cropper.CropImageActivity "
android : theme = " @style/Base.Theme.AppCompat "
/>
CropImageView
после Call super.onCreate(savedInstanceState)
override fun onCreate ( savedInstanceState : Bundle ? ) {
super .onCreate(savedInstanceState)
setCropImageView(binding.cropImageView)
}
При вызове урожая непосредственно библиотека подтолкнет диалоговое окно для пользователя выбора между галереей или камерой (если вы сохраните оба включения). Мы используем Android Default AlertDialog для этого. Если вы хотите настроить его с помощью темы приложения, вам нужно переопределить метод showImageSourceDialog(..)
При расширении деятельности (выше)
override fun showImageSourceDialog ( openSource : ( Source ) -> Unit ) {
super .showImageSourceDialog(openCamera)
}
Начните с использования версии 4.3.3:
dependencies {
implementation( " com.vanniktech:android-image-cropper:4.3.3 " )
}
- import com.theartofdev.edmodo.cropper.CropImage
- import com.theartofdev.edmodo.cropper.CropImageActivity
+ import com.canhub.cropper.CropImage
+ import com.canhub.cropper.CropImageActivity
- <com.theartofdev.edmodo.cropper.CropImageView
+ <com.canhub.cropper.CropImageView
При использовании контрактов на деятельность проконсультируйтесь с приложением Sample о том, как использовать наши контракты на деятельность, так как onActivityResult
установилась.
Версии после 4.3.3 немного изменили API, лучше всего обновить до каждой незначительной версии, удалить устаревшие использование API и продолжать обновлять. Таким образом, после использования 4.3.3, обновить до 4.4.0, обновить до 4.5.0, 4.6.0 и т. Д.
Развел от Артурхуба, первоначально раздвоенный от Эдмодо/Кроппер.
Copyright 2016, Arthur Teplitzki, 2013, Edmodo, Inc.
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать эту работу, кроме как в соответствии с лицензией. Вы можете получить копию лицензии в файле лицензии или по:
http://www.apache.org/licenses/license-2.0
Если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии.