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 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
활동 계약을 사용할 때는 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
해당 법률에 의해 요구되거나 서면에 동의하지 않는 한, 라이센스에 따라 배포 된 소프트웨어는 명시 적 또는 묵시적 보증 또는 조건없이 "그대로"기준으로 배포됩니다. 라이센스에 따른 특정 언어 통치 권한 및 제한 사항에 대한 라이센스를 참조하십시오.