{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}

Paint

public interface Paint

Known direct subclasses
AndroidPaint

Create a Compose Paint instance backed by an android.graphics.Paint object to be consumed by Compose applications running on the Android platform


Summary

Public methods

abstract @NonNull NativePaint
abstract float

Configures the alpha value between 0f to 1f representing fully transparent to fully opaque for the color drawn with this Paint

abstract @NonNull BlendMode

A blend mode to apply when a shape is drawn or a layer is composited.

abstract @NonNull Color

The color to use when stroking or filling a shape.

abstract ColorFilter

A color filter to apply when a shape is drawn or when a layer is composited.

abstract @NonNull FilterQuality

Controls the performance vs quality trade-off to use when applying when drawing images, as with Canvas.drawImageRect Defaults to FilterQuality.Low.

abstract PathEffect

Specifies the PathEffect applied to the geometry of the shape that is drawn

abstract Shader

The shader to use when stroking or filling a shape.

abstract @NonNull StrokeCap

The kind of finish to place on the end of lines drawn when style is set to PaintingStyle.Stroke.

abstract @NonNull StrokeJoin

The kind of finish to place on the joins between segments.

abstract float

The limit for miters to be drawn on segments when the join is set to StrokeJoin.Miter and the style is set to PaintingStyle.Stroke.

abstract float

How wide to make edges drawn when style is set to PaintingStyle.Stroke.

abstract @NonNull PaintingStyle

Whether to paint inside shapes, the edges of shapes, or both.

abstract boolean

Whether to apply anti-aliasing to lines and images drawn on the canvas.

abstract void
setAlpha(float alpha)

Configures the alpha value between 0f to 1f representing fully transparent to fully opaque for the color drawn with this Paint

abstract void
setAntiAlias(boolean isAntiAlias)

Whether to apply anti-aliasing to lines and images drawn on the canvas.

abstract void

A blend mode to apply when a shape is drawn or a layer is composited.

abstract void

The color to use when stroking or filling a shape.

abstract void

A color filter to apply when a shape is drawn or when a layer is composited.

abstract void

Controls the performance vs quality trade-off to use when applying when drawing images, as with Canvas.drawImageRect Defaults to FilterQuality.Low.

abstract void

Specifies the PathEffect applied to the geometry of the shape that is drawn

abstract void
setShader(Shader shader)

The shader to use when stroking or filling a shape.

abstract void

The kind of finish to place on the end of lines drawn when style is set to PaintingStyle.Stroke.

abstract void

The kind of finish to place on the joins between segments.

abstract void
setStrokeMiterLimit(float strokeMiterLimit)

The limit for miters to be drawn on segments when the join is set to StrokeJoin.Miter and the style is set to PaintingStyle.Stroke.

abstract void
setStrokeWidth(float strokeWidth)

How wide to make edges drawn when style is set to PaintingStyle.Stroke.

abstract void

Whether to paint inside shapes, the edges of shapes, or both.

Public methods

asFrameworkPaint

abstract @NonNull NativePaint asFrameworkPaint()

getAlpha

abstract float getAlpha()

Configures the alpha value between 0f to 1f representing fully transparent to fully opaque for the color drawn with this Paint

getBlendMode

abstract @NonNull BlendMode getBlendMode()

A blend mode to apply when a shape is drawn or a layer is composited. The source colors are from the shape being drawn (e.g. from Canvas.drawPath) or layer being composited (the graphics that were drawn between the Canvas.saveLayer and Canvas.restore calls), after applying the colorFilter, if any. The destination colors are from the background onto which the shape or layer is being composited. Defaults to BlendMode.SrcOver. See also: Canvas.saveLayer, which uses its Paint's blendMode to composite the layer when Canvas.restore is called. BlendMode, which discusses the user of Canvas.saveLayer with blendMode.

getColor

abstract @NonNull Color getColor()

The color to use when stroking or filling a shape. Defaults to opaque black. See also: style, which controls whether to stroke or fill (or both). colorFilter, which overrides color. shader, which overrides color with more elaborate effects. This color is not used when compositing. To colorize a layer, use colorFilter.

getColorFilter

abstract ColorFilter getColorFilter()

A color filter to apply when a shape is drawn or when a layer is composited. See ColorFilter for details. When a shape is being drawn, colorFilter overrides color and shader.

getFilterQuality

abstract @NonNull FilterQuality getFilterQuality()

Controls the performance vs quality trade-off to use when applying when drawing images, as with Canvas.drawImageRect Defaults to FilterQuality.Low.

getPathEffect

abstract PathEffect getPathEffect()

Specifies the PathEffect applied to the geometry of the shape that is drawn

getShader

abstract Shader getShader()

The shader to use when stroking or filling a shape.

When this is null, the color is used instead.

See also: LinearGradientShader, RadialGradientShader, or SweepGradientShader shaders that paint a color gradient. ImageShader, a shader that tiles an ImageBitmap. colorFilter, which overrides shader. color, which is used if shader and colorFilter are null.

getStrokeCap

abstract @NonNull StrokeCap getStrokeCap()

The kind of finish to place on the end of lines drawn when style is set to PaintingStyle.Stroke. Defaults to StrokeCap.Butt, i.e. no caps.

getStrokeJoin

abstract @NonNull StrokeJoin getStrokeJoin()

The kind of finish to place on the joins between segments. This applies to paths drawn when style is set to PaintingStyle.Stroke, It does not apply to points drawn as lines with Canvas.drawPoints. Defaults to StrokeJoin.Miter, i.e. sharp corners. See also strokeMiterLimit to control when miters are replaced by bevels.

getStrokeMiterLimit

abstract float getStrokeMiterLimit()

The limit for miters to be drawn on segments when the join is set to StrokeJoin.Miter and the style is set to PaintingStyle.Stroke. If this limit is exceeded, then a StrokeJoin.Bevel join will be drawn instead. This may cause some 'popping' of the corners of a path if the angle between line segments is animated. This limit is expressed as a limit on the length of the miter. Defaults to 4.0. Using zero as a limit will cause a StrokeJoin.Bevel join to be used all the time.

getStrokeWidth

abstract float getStrokeWidth()

How wide to make edges drawn when style is set to PaintingStyle.Stroke. The width is given in logical pixels measured in the direction orthogonal to the direction of the path. Defaults to 0.0, which correspond to a hairline width.

getStyle

abstract @NonNull PaintingStyle getStyle()

Whether to paint inside shapes, the edges of shapes, or both. Defaults to PaintingStyle.Fill.

isAntiAlias

abstract boolean isAntiAlias()

Whether to apply anti-aliasing to lines and images drawn on the canvas. Defaults to true.

setAlpha

abstract void setAlpha(float alpha)

Configures the alpha value between 0f to 1f representing fully transparent to fully opaque for the color drawn with this Paint

setAntiAlias

abstract void setAntiAlias(boolean isAntiAlias)

Whether to apply anti-aliasing to lines and images drawn on the canvas. Defaults to true.

setBlendMode

abstract void setBlendMode(@NonNull BlendMode blendMode)

A blend mode to apply when a shape is drawn or a layer is composited. The source colors are from the shape being drawn (e.g. from Canvas.drawPath) or layer being composited (the graphics that were drawn between the Canvas.saveLayer and Canvas.restore calls), after applying the colorFilter, if any. The destination colors are from the background onto which the shape or layer is being composited. Defaults to BlendMode.SrcOver. See also: Canvas.saveLayer, which uses its Paint's blendMode to composite the layer when Canvas.restore is called. BlendMode, which discusses the user of Canvas.saveLayer with blendMode.

setColor

abstract void setColor(@NonNull Color color)

The color to use when stroking or filling a shape. Defaults to opaque black. See also: style, which controls whether to stroke or fill (or both). colorFilter, which overrides color. shader, which overrides color with more elaborate effects. This color is not used when compositing. To colorize a layer, use colorFilter.

setColorFilter

abstract void setColorFilter(ColorFilter colorFilter)

A color filter to apply when a shape is drawn or when a layer is composited. See ColorFilter for details. When a shape is being drawn, colorFilter overrides color and shader.

setFilterQuality

abstract void setFilterQuality(@NonNull FilterQuality filterQuality)

Controls the performance vs quality trade-off to use when applying when drawing images, as with Canvas.drawImageRect Defaults to FilterQuality.Low.

setPathEffect

abstract void setPathEffect(PathEffect pathEffect)

Specifies the PathEffect applied to the geometry of the shape that is drawn

setShader

abstract void setShader(Shader shader)

The shader to use when stroking or filling a shape.

When this is null, the color is used instead.

See also: LinearGradientShader, RadialGradientShader, or SweepGradientShader shaders that paint a color gradient. ImageShader, a shader that tiles an ImageBitmap. colorFilter, which overrides shader. color, which is used if shader and colorFilter are null.

setStrokeCap

abstract void setStrokeCap(@NonNull StrokeCap strokeCap)

The kind of finish to place on the end of lines drawn when style is set to PaintingStyle.Stroke. Defaults to StrokeCap.Butt, i.e. no caps.

setStrokeJoin

abstract void setStrokeJoin(@NonNull StrokeJoin strokeJoin)

The kind of finish to place on the joins between segments. This applies to paths drawn when style is set to PaintingStyle.Stroke, It does not apply to points drawn as lines with Canvas.drawPoints. Defaults to StrokeJoin.Miter, i.e. sharp corners. See also strokeMiterLimit to control when miters are replaced by bevels.

setStrokeMiterLimit

abstract void setStrokeMiterLimit(float strokeMiterLimit)

The limit for miters to be drawn on segments when the join is set to StrokeJoin.Miter and the style is set to PaintingStyle.Stroke. If this limit is exceeded, then a StrokeJoin.Bevel join will be drawn instead. This may cause some 'popping' of the corners of a path if the angle between line segments is animated. This limit is expressed as a limit on the length of the miter. Defaults to 4.0. Using zero as a limit will cause a StrokeJoin.Bevel join to be used all the time.

setStrokeWidth

abstract void setStrokeWidth(float strokeWidth)

How wide to make edges drawn when style is set to PaintingStyle.Stroke. The width is given in logical pixels measured in the direction orthogonal to the direction of the path. Defaults to 0.0, which correspond to a hairline width.

setStyle

abstract void setStyle(@NonNull PaintingStyle style)

Whether to paint inside shapes, the edges of shapes, or both. Defaults to PaintingStyle.Fill.