RemoteCanvas

Functions summary

Unit

A Composable that provides a RemoteDrawScope for drawing operations in RemoteCompose.

Functions

@RemoteComposable
@Composable
fun RemoteCanvas(modifier: RemoteModifier = RemoteModifier, content: RemoteDrawScope.() -> Unit): Unit

A Composable that provides a RemoteDrawScope for drawing operations in RemoteCompose.

import androidx.compose.remote.creation.compose.layout.RemoteCanvas
import androidx.compose.remote.creation.compose.modifier.RemoteModifier
import androidx.compose.remote.creation.compose.modifier.size
import androidx.compose.remote.creation.compose.state.RemotePaint
import androidx.compose.remote.creation.compose.state.rc
import androidx.compose.remote.creation.compose.state.rdp
import androidx.compose.remote.creation.compose.state.rf
import androidx.compose.ui.graphics.Color

RemoteCanvas(modifier = RemoteModifier.size(100.rdp)) {
    val paint = RemotePaint().apply { color = Color.Red.rc }
    drawCircle(paint = paint, radius = 50.rf)
}
import androidx.compose.remote.creation.compose.layout.RemoteCanvas
import androidx.compose.remote.creation.compose.modifier.RemoteModifier
import androidx.compose.remote.creation.compose.modifier.size
import androidx.compose.remote.creation.compose.state.RemotePaint
import androidx.compose.remote.creation.compose.state.rc
import androidx.compose.remote.creation.compose.state.rdp
import androidx.compose.remote.creation.compose.state.rf
import androidx.compose.remote.creation.compose.state.sin
import androidx.compose.ui.graphics.Color

// This sample uses ContinuousSec, but demonstrates how to create time-based
// animations on the remote canvas.
RemoteCanvas(modifier = RemoteModifier.size(100.rdp)) {
    val paint = RemotePaint().apply { color = Color.Blue.rc }

    val time = remote.time.ContinuousSec()

    // Oscillate radius between 10 and 40
    val sineValue = sin(time)
    val normalizedSine = (sineValue + 1f.rf) / 2f.rf
    val radius = 10f.rf + 30f.rf * normalizedSine

    drawCircle(paint = paint, radius = radius)
}
Parameters
modifier: RemoteModifier = RemoteModifier

The RemoteModifier to apply to this layout.

content: RemoteDrawScope.() -> Unit

The drawing commands to be executed on the remote canvas via RemoteDrawScope.