dependencies {
implementation( " com.vanniktech:android-image-cropper:4.6.0 " )
}
Es gibt 3 Möglichkeiten, die Bibliothek zu verwenden. In der Beispiel -App finden Sie alle Details.
Hinweis: Auf diese Weise ist veraltet und wird in zukünftigen Versionen entfernt. Der Weg nach vorne besteht darin, Ihre eigene Aktivität zu schreiben, alle Uri
-Sachen selbst zu bewältigen und CropImageView
zu verwenden.
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.
}
Hinweis: Dies ist der einzige Weg nach vorne, fügen Sie CropImageView
in Ihre eigene Aktivität hinzu und tun Sie alles, was Sie wünschen. Schauen Sie sich das Beispiel für weitere Details an.
<!-- 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()
Hinweis: Auf diese Weise ist auch veraltet und wird in zukünftigen Versionen entfernt. Der Weg nach vorne besteht darin, Ihre eigene Aktivität zu schreiben, alle Uri
-Sachen selbst zu bewältigen und CropImageView
zu verwenden.
Wenn CropImageView
die CropImageActivity
verlängern möchten
CropImageActivity
in Ihre AndroidManifest.xml hinzu <!-- 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
nach Call super.onCreate(savedInstanceState)
ein override fun onCreate ( savedInstanceState : Bundle ? ) {
super .onCreate(savedInstanceState)
setCropImageView(binding.cropImageView)
}
Wenn Sie direkt die Ernte anrufen, fordert die Bibliothek einen Dialogfeld für den Benutzer auf, der zwischen Galerie oder Kamera auswählt (wenn Sie beide aktivieren). Wir verwenden dafür den Android -Standard -AlertDialog. Wenn Sie es mit Ihrem App -Thema anpassen möchten, müssen Sie die Methode showImageSourceDialog(..)
überschreiben, wenn Sie die Aktivität (oben) erweitern (oben).
override fun showImageSourceDialog ( openSource : ( Source ) -> Unit ) {
super .showImageSourceDialog(openCamera)
}
Beginnen Sie mit der 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
Bei Verwendung von Aktivitätsverträgen wenden Sie sich an die Beispiel -App, wie Sie unsere Aktivitätsverträge verwenden, da onActivityResult
veraltet wurde.
Versionen nach 4.3.3 haben die APIs ziemlich verändert. Es ist am besten, auf jede Nebenversion einzeln zu aktualisieren, veraltete API -Verwendungen zu entfernen und weiter zu aktualisieren. Nach Verwendung 4.3.3, Upgrade auf 4.4.0, Upgrade auf 4.5.0, 4.6.0 usw., usw.
Aus Arthurhub verziert ursprünglich aus Edmodo/Cropper.
Copyright 2016, Arthur Teplitzki, 2013, Edmodo, Inc.
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Arbeit nur in Einklang mit der Lizenz verwenden. Sie können eine Kopie der Lizenz in der Lizenzdatei erhalten oder unter:
http://www.apache.org/licenses/license-2.0
Sofern nicht nach geltendem Recht oder schriftlich zu vereinbart wird, wird die im Rahmen der Lizenz verteilte Software auf "As is" -Basis ohne Gewährleistung oder Bedingungen jeglicher Art ausdrücklich oder impliziert verteilt. Siehe die Lizenz für die spezifischen Sprachberechtigungen und Einschränkungen im Rahmen der Lizenz.