---
title: "Painter"
description: "Abstraction for something that can be drawn. In addition to providing the ability to draw into a
specified bounded area, [Painter] provides a few high level mechanisms that consumers can use to
configure how the content is drawn. These include alpha, ColorFilter, and RTL

Implementations should provide a meaningful equals method that compares values of different
[Painter] subclasses and not rely on just referential equality"
type: "class"
---

<div class='type'>Class</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
abstract class Painter
```


Abstraction for something that can be drawn. In addition to providing the ability to draw into a
specified bounded area, `Painter` provides a few high level mechanisms that consumers can use to
configure how the content is drawn. These include alpha, ColorFilter, and RTL

Implementations should provide a meaningful equals method that compares values of different
`Painter` subclasses and not rely on just referential equality


## Properties

<div class='sourceset sourceset-common'>Common</div>


```kotlin
abstract val intrinsicSize: Size
```


Return the intrinsic size of the `Painter`. 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. If a `Painter`
does not have an intrinsic size, it will always draw within the full bounds of the
destination



## Functions

```kotlin
fun DrawScope.draw(size: Size, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null)
```


