dependencies {
implementation( " com.vanniktech:android-image-cropper:4.6.0 " )
}
Il existe 3 façons d'utiliser la bibliothèque. Consultez l'exemple d'application pour tous les détails.
Remarque: Cette façon est obsolète et sera supprimée dans les futures versions. Le chemin à parcourir consiste à écrire votre propre activité, à gérer tous les trucs Uri
vous-même et à utiliser 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.
}
Remarque: c'est la seule voie à suivre, ajoutez CropImageView
dans votre propre activité et faites ce que vous souhaitez. Découvrez l'échantillon pour plus de détails.
<!-- 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()
Remarque: Cette façon est également obsolète et sera supprimée dans les futures versions. Le chemin à parcourir consiste à écrire votre propre activité, à gérer tous les trucs Uri
vous-même et à utiliser CropImageView
.
Si vous souhaitez prolonger la CropImageActivity
sachez que vous devrez configurer votre CropImageView
CropImageActivity
dans votre 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
après l'appel super.onCreate(savedInstanceState)
override fun onCreate ( savedInstanceState : Bundle ? ) {
super .onCreate(savedInstanceState)
setCropImageView(binding.cropImageView)
}
Lors de l'appel de la culture directement, la bibliothèque invitera une boîte de dialogue pour l'utilisateur Choisissez entre la galerie ou la caméra (si vous gardez les deux activer). Nous utilisons l'alerte par défaut Android pour cela. Si vous voulez le personnaliser avec le thème de votre application, vous devez remplacer la méthode showImageSourceDialog(..)
lors de l'extension de l'activité (ci-dessus)
override fun showImageSourceDialog ( openSource : ( Source ) -> Unit ) {
super .showImageSourceDialog(openCamera)
}
Commencez par utiliser la version 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
Lorsque vous utilisez des contrats d'activité, consultez l'exemple d'application sur la façon d'utiliser nos contrats d'activité, car onActivityResult
a été obsolète.
Les versions après 4.3.3 ont beaucoup changé les API, il est préférable de passer à chaque version mineure individuellement, de supprimer les usages d'API dépréciés et de continuer à mettre à niveau. Ainsi, après avoir utilisé 4.3.3, passez à 4.4.0, passez à 4.5.0, 4.6.0, etc.
Fruit à partir d'Arthurhub à l'origine fourchu à partir d'Edmodo / Cropper.
Copyright 2016, Arthur Teplitzki, 2013, Edmodo, Inc.
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce travail, sauf conforme à la licence. Vous pouvez obtenir une copie de la licence dans le fichier de licence, ou à:
http://www.apache.org/licenses/license-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.