Brush

Class

Common
sealed class Brush

Properties

Common
open val intrinsicSize: Size

Return the intrinsic size of the Brush. If the there is no intrinsic size (i.e. filling bounds with an arbitrary color) return Size.Unspecified. If there is no intrinsic size in a single dimension, return Size with Float.NaN in the desired dimension.

Functions

abstract fun applyTo(size: Size, p: Paint, alpha: Float)

Companion Object

Methods

Common
fun linearGradient(
            vararg colorStops: Pair<Float, Color>,
            start: Offset = Offset.Zero,
            end: Offset = Offset.Infinite,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a linear gradient with the provided colors along the given start and end coordinates. The colors are dispersed at the provided offset defined in the colorstop pair.

 Brush.linearGradient(    0.0f to Color.Red,    0.3f to Color.Green,    1.0f to Color.Blue,    start = Offset(0.0f, 50.0f),    end = Offset(0.0f, 100.0f)
)

Parameters

colorStopsColors and their offset in the gradient area
startStarting position of the linear gradient. This can be set to Offset.Zero to position at the far left and top of the drawing area
endEnding position of the linear gradient. This can be set to Offset.Infinite to position at the far right and bottom of the drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun linearGradient(
            colors: List<Color>,
            start: Offset = Offset.Zero,
            end: Offset = Offset.Infinite,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a linear gradient with the provided colors along the given start and end coordinates. The colors are

 Brush.linearGradient(    listOf(Color.Red, Color.Green, Color.Blue),    start = Offset(0.0f, 50.0f),    end = Offset(0.0f, 100.0f)
)

Parameters

colorsColors to be rendered as part of the gradient
startStarting position of the linear gradient. This can be set to Offset.Zero to position at the far left and top of the drawing area
endEnding position of the linear gradient. This can be set to Offset.Infinite to position at the far right and bottom of the drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun horizontalGradient(
            colors: List<Color>,
            startX: Float = 0.0f,
            endX: Float = Float.POSITIVE_INFINITY,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a horizontal gradient with the given colors evenly dispersed within the gradient

Ex:

 Brush.horizontalGradient(    listOf(Color.Red, Color.Green, Color.Blue),    startX = 10.0f,    endX = 20.0f
)

Parameters

colorscolors Colors to be rendered as part of the gradient
startXStarting x position of the horizontal gradient. Defaults to 0 which represents the left of the drawing area
endXEnding x position of the horizontal gradient. Defaults to Float.POSITIVE_INFINITY which indicates the right of the specified drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun horizontalGradient(
            vararg colorStops: Pair<Float, Color>,
            startX: Float = 0.0f,
            endX: Float = Float.POSITIVE_INFINITY,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a horizontal gradient with the given colors dispersed at the provided offset defined in the colorstop pair.

Ex:

 Brush.horizontalGradient(    0.0f to Color.Red,    0.3f to Color.Green,    1.0f to Color.Blue,    startX = 0.0f,    endX = 100.0f
)

Parameters

colorStopsColors and offsets to determine how the colors are dispersed throughout the vertical gradient
startXStarting x position of the horizontal gradient. Defaults to 0 which represents the left of the drawing area
endXEnding x position of the horizontal gradient. Defaults to Float.POSITIVE_INFINITY which indicates the right of the specified drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun verticalGradient(
            colors: List<Color>,
            startY: Float = 0.0f,
            endY: Float = Float.POSITIVE_INFINITY,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a vertical gradient with the given colors evenly dispersed within the gradient Ex:

 Brush.verticalGradient(    listOf(Color.Red, Color.Green, Color.Blue),    startY = 0.0f,    endY = 100.0f
)

Parameters

colorscolors Colors to be rendered as part of the gradient
startYStarting y position of the vertical gradient. Defaults to 0 which represents the top of the drawing area
endYEnding y position of the vertical gradient. Defaults to Float.POSITIVE_INFINITY which indicates the bottom of the specified drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun verticalGradient(
            vararg colorStops: Pair<Float, Color>,
            startY: Float = 0f,
            endY: Float = Float.POSITIVE_INFINITY,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a vertical gradient with the given colors at the provided offset defined in the Pair<Float, Color>

Ex:

 Brush.verticalGradient(    0.1f to Color.Red,    0.3f to Color.Green,    0.5f to Color.Blue,    startY = 0.0f,    endY = 100.0f
)

Parameters

colorStopsColors and offsets to determine how the colors are dispersed throughout the vertical gradient
startYStarting y position of the vertical gradient. Defaults to 0 which represents the top of the drawing area
endYEnding y position of the vertical gradient. Defaults to Float.POSITIVE_INFINITY which indicates the bottom of the specified drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun radialGradient(
            vararg colorStops: Pair<Float, Color>,
            center: Offset = Offset.Unspecified,
            radius: Float = Float.POSITIVE_INFINITY,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a radial gradient with the given colors at the provided offset defined in the colorstop pair.

Brush.radialGradient(    0.0f to Color.Red,    0.3f to Color.Green,    1.0f to Color.Blue,    center = Offset(side1 / 2.0f, side2 / 2.0f),    radius = side1 / 2.0f,    tileMode = TileMode.Repeated
)

Parameters

colorStopsColors and offsets to determine how the colors are dispersed throughout the radial gradient
centerCenter position of the radial gradient circle. If this is set to Offset.Unspecified then the center of the drawing area is used as the center for the radial gradient. Float.POSITIVE_INFINITY can be used for either Offset.x or Offset.y to indicate the far right or far bottom of the drawing area respectively.
radiusRadius for the radial gradient. Defaults to positive infinity to indicate the largest radius that can fit within the bounds of the drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun radialGradient(
            colors: List<Color>,
            center: Offset = Offset.Unspecified,
            radius: Float = Float.POSITIVE_INFINITY,
            tileMode: TileMode = TileMode.Clamp,
        ): Brush

Creates a radial gradient with the given colors evenly dispersed within the gradient

Brush.radialGradient(    listOf(Color.Red, Color.Green, Color.Blue),    center = Offset(side1 / 2.0f, side2 / 2.0f),    radius = side1 / 2.0f,    tileMode = TileMode.Repeated
)

Parameters

colorsColors to be rendered as part of the gradient
centerCenter position of the radial gradient circle. If this is set to Offset.Unspecified then the center of the drawing area is used as the center for the radial gradient. Float.POSITIVE_INFINITY can be used for either Offset.x or Offset.y to indicate the far right or far bottom of the drawing area respectively.
radiusRadius for the radial gradient. Defaults to positive infinity to indicate the largest radius that can fit within the bounds of the drawing area
tileModeDetermines the behavior for how the shader is to fill a region outside its bounds. Defaults to TileMode.Clamp to repeat the edge pixels
Common
fun sweepGradient(
            vararg colorStops: Pair<Float, Color>,
            center: Offset = Offset.Unspecified,
        ): Brush

Creates a sweep gradient with the given colors dispersed around the center with offsets defined in each colorstop pair. The sweep begins relative to 3 o'clock and continues clockwise until it reaches the starting position again.

Ex:

 Brush.sweepGradient(    0.0f to Color.Red,    0.3f to Color.Green,    1.0f to Color.Blue,    center = Offset(0.0f, 100.0f)
)

Parameters

colorStopsColors and offsets to determine how the colors are dispersed throughout the sweep gradient
centerCenter position of the sweep gradient circle. If this is set to Offset.Unspecified then the center of the drawing area is used as the center for the sweep gradient
Common
fun sweepGradient(colors: List<Color>, center: Offset = Offset.Unspecified): Brush

Creates a sweep gradient with the given colors dispersed evenly around the center. The sweep begins relative to 3 o'clock and continues clockwise until it reaches the starting position again.

Ex:

 Brush.sweepGradient(    listOf(Color.Red, Color.Green, Color.Blue),    center = Offset(10.0f, 20.0f)
)

Parameters

colorsList of colors to fill the sweep gradient
centerCenter position of the sweep gradient circle. If this is set to Offset.Unspecified then the center of the drawing area is used as the center for the sweep gradient
Common
fun composite(dstBrush: Brush, srcBrush: Brush, blendMode: BlendMode): Brush

Creates a composited result between 2 Brush instances and the specified BlendMode. The specified destination and source Brush inputs will be consumed as the source and destination images for the corresponding blending algorithm.

Parameters

dstBrushShaderBrush used as the destination content
srcBrushShaderBrush used as the source content
blendModeBlendMode used to composite the source against the destination shader