clipShape

abstract fun clipShape(shape: RoundedCornerShape, size: IntSize, offset: IntOffset = IntOffset.Zero)

Clip the view with given shape, size and offset

Parameters

shape

the shape of clip

size

the size of shape

offset

the offset of shape, default is IntOffset.Zero, means the shape is start from the top-left corner of the view

Samples

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.center
import androidx.compose.ui.unit.dp
import com.pico.spatial.ui.foundation.hover.RectangleShape
import com.pico.spatial.ui.foundation.hover.spatialHoverEffect
import com.pico.spatial.ui.foundation.hover.tween
import kotlin.math.min

fun main() { 
   //sampleStart 
   // Demonstrate a Box with clip and alpha changes during hover active and inactive
Box(
    Modifier.spatialHoverEffect {
        val isActive = it.isActive
        val size = it.size
        // clip with a default animation
        clipShape(
            shape = if (isActive) RoundedCornerShape(20.dp) else RoundedCornerShape(0),
            size =
                IntSize(
                    if (isActive) {
                        size.width
                    } else size.width / 2,
                    size.height,
                ),
            IntOffset(0, 0),
        )

        // scale with a default animation
        scale(scale = if (isActive) 2f else 1f)

        // 2. alpha with a default animation
        alpha(if (isActive) 1f else 0f)
        // 3. with a specified animation
        animation(animation = tween(delayMillis = 200)) {
            // some effect
        }
    }
) 
   //sampleEnd
}