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
使用することです。
CropImageActivity
を拡張したい場合は、 CropImageView
をセットアップする必要があることに注意してください
CropImageActivity
を追加します <!-- 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 "
/>
super.onCreate(savedInstanceState)
の後にCropImageView
設定します override fun onCreate ( savedInstanceState : Bundle ? ) {
super .onCreate(savedInstanceState)
setCropImageView(binding.cropImageView)
}
作物を直接呼び出すと、ライブラリはユーザーにギャラリーまたはカメラのいずれかを選択するためのダイアログを促します(両方を有効にしている場合)。これには、Androidデフォルト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
アクティビティ契約を使用する場合は、 onActivityResult
が非推奨になってから、アクティビティ契約の使用方法についてサンプルアプリに相談してください。
4.3.3後のバージョンはAPIをかなり変更しました。各マイナーバージョンに個別にアップグレードし、非推奨API使用量を削除し、アップグレードを続けることが最善です。 4.3.3を使用した後、4.4.0にアップグレードし、4.5.0、4.6.0などにアップグレードします。
Arthurhubからは元々Edmodo/Cropperから分岐しました。
Copyright 2016、Arthur Teplitzki、2013、Edmodo、Inc。
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、この作業を使用することはできません。ライセンスファイルまたはでライセンスのコピーを取得できます。
http://www.apache.org/licenses/license-2.0
適用法で要求されていないか、書面で合意されていない限り、ライセンスに基づいて配布されたソフトウェアは、明示または黙示のいずれかの保証または条件なしに、「現状のまま」に基づいて配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。