paint

Compose Modifier

Common
fun Modifier.paint(
    painter: Painter,
    sizeToIntrinsics: Boolean = true,
    alignment: Alignment = Alignment.Center,
    contentScale: ContentScale = ContentScale.Inside,
    alpha: Float = DefaultAlpha,
    colorFilter: ColorFilter? = null,
) =
    this then
        PainterElement(
            painter = painter,
            sizeToIntrinsics = sizeToIntrinsics,
            alignment = alignment,
            contentScale = contentScale,
            alpha = alpha,
            colorFilter = colorFilter,
        )

Paint the content using painter.

Parameters

painterPainter to be drawn by this Modifier
sizeToIntrinsicstrue to size the element relative to Painter.intrinsicSize
alignmentspecifies alignment of the painter relative to content
contentScalestrategy for scaling painter if its size does not match the content size
alphaopacity of painter
colorFilteroptional ColorFilter to apply to painter

Code Examples

PainterModifierSample

@Composable
fun PainterModifierSample() {
    class CustomPainter : Painter() {
        override val intrinsicSize: Size
            get() = Size(300.0f, 300.0f)
        override fun DrawScope.onDraw() {
            drawCircle(center = center, radius = size.minDimension / 2.0f, color = Color.Red)
        }
    }
    Box(
        modifier =
            Modifier.background(color = Color.Gray)
                .padding(30.dp)
                .background(color = Color.Yellow)
                .paint(CustomPainter())
    ) {
        /** intentionally empty */
    }
}