diff --git a/app/src/main/java/com/smarttoolfactory/composecropper/demo/ImageCropDemo.kt b/app/src/main/java/com/smarttoolfactory/composecropper/demo/ImageCropDemo.kt index f6a83ef..e21d908 100644 --- a/app/src/main/java/com/smarttoolfactory/composecropper/demo/ImageCropDemo.kt +++ b/app/src/main/java/com/smarttoolfactory/composecropper/demo/ImageCropDemo.kt @@ -70,6 +70,7 @@ fun ImageCropDemo() { val handleSize = LocalDensity.current.run { 14.dp.toPx() } val cornerSize = LocalDensity.current.run { 8.dp.toPx() } val corner = CornerRadiusProperties(radius = cornerSize) + val minOverlaySize = LocalDensity.current.run { 36.dp.toPx() } var cropProperties by remember { mutableStateOf( @@ -78,7 +79,10 @@ fun ImageCropDemo() { outlineType = OutlineType.RoundedRect, cropOutline = RoundedCornerCropShape(0, "RoundRect", cornerRadius = corner) ), - handleSize = handleSize + handleSize = handleSize, + pannable = false, + zoomable = false, + minOverlaySize = minOverlaySize, ) ) } diff --git a/cropper/src/main/java/com/smarttoolfactory/cropper/settings/CropDefaults.kt b/cropper/src/main/java/com/smarttoolfactory/cropper/settings/CropDefaults.kt index 0c1113e..4b8d0e9 100644 --- a/cropper/src/main/java/com/smarttoolfactory/cropper/settings/CropDefaults.kt +++ b/cropper/src/main/java/com/smarttoolfactory/cropper/settings/CropDefaults.kt @@ -36,7 +36,8 @@ object CropDefaults { pannable: Boolean = true, fling: Boolean = false, zoomable: Boolean = true, - rotatable: Boolean = false + rotatable: Boolean = false, + minOverlaySize: Float = handleSize * 2, ): CropProperties { return CropProperties( cropType = cropType, @@ -49,7 +50,8 @@ object CropDefaults { pannable = pannable, fling = fling, zoomable = zoomable, - rotatable = rotatable + rotatable = rotatable, + minOverlaySize = minOverlaySize, ) } @@ -96,6 +98,7 @@ data class CropProperties internal constructor( val rotatable: Boolean, val zoomable: Boolean, val maxZoom: Float, + val minOverlaySize: Float, ) /** diff --git a/cropper/src/main/java/com/smarttoolfactory/cropper/state/CropState.kt b/cropper/src/main/java/com/smarttoolfactory/cropper/state/CropState.kt index 3fc5ce3..77fe06a 100644 --- a/cropper/src/main/java/com/smarttoolfactory/cropper/state/CropState.kt +++ b/cropper/src/main/java/com/smarttoolfactory/cropper/state/CropState.kt @@ -29,7 +29,7 @@ fun rememberCropState( // Properties of crop state val handleSize = cropProperties.handleSize - val minOverlaySize = handleSize * 2 + val minOverlaySize = cropProperties.minOverlaySize val cropType = cropProperties.cropType val aspectRatio = cropProperties.aspectRatio val overlayRatio = cropProperties.overlayRatio diff --git a/cropper/src/main/java/com/smarttoolfactory/cropper/state/DynamicCropState.kt b/cropper/src/main/java/com/smarttoolfactory/cropper/state/DynamicCropState.kt index 95da2a7..91aad5e 100644 --- a/cropper/src/main/java/com/smarttoolfactory/cropper/state/DynamicCropState.kt +++ b/cropper/src/main/java/com/smarttoolfactory/cropper/state/DynamicCropState.kt @@ -85,7 +85,7 @@ class DynamicCropState internal constructor( override suspend fun updateProperties(cropProperties: CropProperties, forceUpdate: Boolean) { handleSize = cropProperties.handleSize - minOverlaySize = handleSize * 2 + minOverlaySize = cropProperties.minOverlaySize super.updateProperties(cropProperties, forceUpdate) }