Brush APIs

The Brush APIs provide you with the tools to define the visual style of your strokes. You can create brushes with different colors, sizes, and families to achieve a variety of looks.

Create a brush

To create a brush, use the Brush factory methods such as createWithColorIntArgb() class. The factory methods let you set the following properties:

  • family: The style of the brush, analogous to a typeface or font in text. See StockBrushes for available BrushFamily values.
  • color: The color of the brush. You can set the color using a ColorLong or ColorInt.
  • size: The overall thickness of strokes created with the brush.
  • epsilon: The smallest distance for which two points should be considered visually distinct for stroke generation geometry purposes. The ratio of epsilon and stroke points control how much a stroke can be zoomed in without artifacts at the cost of memory. A good starting point for stroke units is 1px, and a good starting point for epsilon is 0.1. Higher epsilon values use less memory but allow for less zoom before triangle artifacts appear; experiment to find the right value for your use case.
val brush = Brush.createWithColorIntArgb(
        family = StockBrushes.pressurePenLatest,
        colorIntArgb = Color.Black.toArgb(),
        size = 5F,
        epsilon = 0.1F
    )

Modify brush properties

You can create a copy of an existing brush using the copy() method. This method lets you change any of the brush's properties.

val redBrush = Brush.createWithColorIntArgb(
        family = StockBrushes.pressurePenLatest,
        colorIntArgb = Color.RED.toArgb(),
        size = 5F,
        epsilon = 0.1F
    )

val blueBrush = redBrush.copy(colorIntArgb = Color.BLUE.toArgb())