State of Compose 2023 results are in! Click here to learn more

← Back to Foundation

Canvas

Component
in
Foundation
. Since 0.1.0-dev15

Overview

Code Examples

Component that allow you to specify an area on the screen and perform canvas drawing on this area. You MUST specify size with modifier, whether with exact sizes via Modifier.size modifier, or relative to parent, via Modifier.fillMaxSize, ColumnScope.weight, etc. If parent wraps this child, only exact sizes must be specified.

Overloads

Canvas

@Composable
fun Canvas(modifier: Modifier, onDraw: DrawScope.() -> Unit)

Parameters

NameDescription
modifiermandatory modifier to specify size strategy for this composable
onDrawlambda that will be called to perform drawing. Note that this lambda will be called during draw stage, you have no access to composition scope, meaning that Composable function invocation inside it will result to runtime exceptio

Canvas

@Composable
fun Canvas(modifier: Modifier, contentDescription: String, onDraw: DrawScope.() -> Unit)

Parameters

NameDescription
modifiermandatory modifier to specify size strategy for this composable
contentDescriptiontext used by accessibility services to describe what this canvas represents. This should be provided unless the canvas is used for decorative purposes or as part of a larger entity already described in some other way. This text should be localized, such as by using androidx.compose.ui.res.stringResource
onDrawlambda that will be called to perform drawing. Note that this lambda will be called during draw stage, you have no access to composition scope, meaning that Composable function invocation inside it will result to runtime exceptio