Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Enums](https://developer.android.com/reference/android/graphics/BlendMode#enumconstants) \| [Methods](https://developer.android.com/reference/android/graphics/BlendMode#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/graphics/BlendMode#inhmethods)

# BlendMode

*** ** * ** ***


`
public

final

enum
BlendMode
`


`


`

`

extends https://developer.android.com/reference/java/lang/Enum<https://developer.android.com/reference/android/graphics/BlendMode>


`

`


`

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.lang.Enum](https://developer.android.com/reference/java/lang/Enum)\<[android.graphics.BlendMode](https://developer.android.com/reference/android/graphics/BlendMode)\> ||
|   | ↳ | android.graphics.BlendMode |

<br />

*** ** * ** ***

## Summary

| ### Enum values ||
|---|---|
| `https://developer.android.com/reference/android/graphics/BlendMode` | `CLEAR` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_CLEAR.png) Destination pixels covered by the source are cleared to 0. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `COLOR` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_COLOR.png) Replaces hue and saturation of destination with hue and saturation of source, leaving luminosity unchanged. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `COLOR_BURN` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_COLOR_BURN.png) Makes destination darker to reflect source. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `COLOR_DODGE` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_COLOR_DODGE.png) Makes destination brighter to reflect source. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DARKEN` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DARKEN.png) Retains the smallest component of the source and destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DIFFERENCE` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DIFFERENCE.png) Subtracts darker from lighter with higher contrast. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DST` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST.png) The source pixels are discarded, leaving the destination intact. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DST_ATOP` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_ATOP.png) Discards the destination pixels that are not covered by source pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DST_IN` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_IN.png) Keeps the destination pixels that cover source pixels, discards the remaining source and destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DST_OUT` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_OUT.png) Keeps the destination pixels that are not covered by source pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `DST_OVER` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_OVER.png) The source pixels are drawn behind the destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `EXCLUSION` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DIFFERENCE.png) Subtracts darker from lighter with lower contrast. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `HARD_LIGHT` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_HARD_LIGHT.png) Makes destination lighter or darker, depending on source. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `HUE` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_HUE.png) Replaces hue of destination with hue of source, leaving saturation and luminosity unchanged. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `LIGHTEN` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_LIGHTEN.png) Retains the largest component of the source and destination pixel. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `LUMINOSITY` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_LUMINOSITY.png) Replaces luminosity of destination with luminosity of source, leaving hue and saturation unchanged. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `MODULATE` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_MODULATE.png) Multiplies the source and destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `MULTIPLY` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_MODULATE.png) Multiplies the source and destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `OVERLAY` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_OVERLAY.png) Multiplies or screens the source and destination depending on the destination color. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `PLUS` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_PLUS.png) Adds the source pixels to the destination pixels and saturates the result. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SATURATION` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SATURATION.png) Replaces saturation of destination saturation hue of source, leaving hue and luminosity unchanged. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SCREEN` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SCREEN.png) Adds the source and destination pixels, then subtracts the source pixels multiplied by the destination. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SOFT_LIGHT` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SOFT_LIGHT.png) Makes destination lighter or darker, depending on source. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SRC` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC.png) The source pixels replace the destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SRC_ATOP` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_ATOP.png) Discards the source pixels that do not cover destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SRC_IN` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_IN.png) Keeps the source pixels that cover the destination pixels, discards the remaining source and destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SRC_OUT` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_OUT.png) Keeps the source pixels that do not cover destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `SRC_OVER` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_OVER.png) The source pixels are drawn over the destination pixels. <br /> |
| `https://developer.android.com/reference/android/graphics/BlendMode` | `XOR` ![](https://developer.android.com/static/reference/android/images/graphics/blendmode_XOR.png) Discards the source and destination pixels where source pixels cover destination pixels. <br /> |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/android/graphics/BlendMode` | ` https://developer.android.com/reference/android/graphics/BlendMode#valueOf(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` |
| ` static final https://developer.android.com/reference/android/graphics/BlendMode` | ` https://developer.android.com/reference/android/graphics/BlendMode#values()() ` |

### Inherited methods

From class `

https://developer.android.com/reference/java/lang/Enum

` `


final

https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Enum#clone()()
`

Throws CloneNotSupportedException.


`


final

int` `
https://developer.android.com/reference/java/lang/Enum#compareTo(E)(E o)
`

Compares this enum with the specified object for order.


`


final

boolean` `
https://developer.android.com/reference/java/lang/Enum#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object other)
`

Returns true if the specified object is equal to this
enum constant.


`


final

void` `
https://developer.android.com/reference/java/lang/Enum#finalize()()
`

enum classes cannot have finalize methods.


`


final

https://developer.android.com/reference/java/lang/Class<E>` `
https://developer.android.com/reference/java/lang/Enum#getDeclaringClass()()
`

Returns the Class object corresponding to this enum constant's
enum type.


`


final

int` `
https://developer.android.com/reference/java/lang/Enum#hashCode()()
`

Returns a hash code for this enum constant.


`


final

https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Enum#name()()
`

Returns the name of this enum constant, exactly as declared in its
enum declaration.


`


final

int` `
https://developer.android.com/reference/java/lang/Enum#ordinal()()
`

Returns the ordinal of this enumeration constant (its position
in its enum declaration, where the initial constant is assigned
an ordinal of zero).


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Enum#toString()()
`

Returns the name of this enum constant, as contained in the
declaration.


`


static

<T extends https://developer.android.com/reference/java/lang/Enum<T>>
T` `
https://developer.android.com/reference/java/lang/Enum#valueOf(java.lang.Class<T>,%20java.lang.String)(https://developer.android.com/reference/java/lang/Class<T> enumClass, https://developer.android.com/reference/java/lang/String name)
`

Returns the enum constant of the specified enum class with the
specified name.


From class `

https://developer.android.com/reference/java/lang/Object

` `


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Object#clone()()
`

Creates and returns a copy of this object.


`


boolean` `
https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj)
`

Indicates whether some other object is "equal to" this one.


`


void` `
https://developer.android.com/reference/java/lang/Object#finalize()()
`

Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.


`


final

https://developer.android.com/reference/java/lang/Class<?>` `
https://developer.android.com/reference/java/lang/Object#getClass()()
`

Returns the runtime class of this `Object`.


`


int` `
https://developer.android.com/reference/java/lang/Object#hashCode()()
`

Returns a hash code value for the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notify()()
`

Wakes up a single thread that is waiting on this object's
monitor.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notifyAll()()
`

Wakes up all threads that are waiting on this object's monitor.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Object#toString()()
`

Returns a string representation of the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait()()
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*.


From interface `

https://developer.android.com/reference/java/lang/Comparable

` `
abstract


int` `
https://developer.android.com/reference/java/lang/Comparable#compareTo(T)(E o)
`

Compares this object with the specified object for order.


## Enum values

### CLEAR

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode CLEAR
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_CLEAR.png)
Destination pixels covered by the source are cleared to 0.

<br />

\\(\\alpha_{out} = 0\\)

\\(C_{out} = 0\\)

<br />

<br />

### COLOR

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode COLOR
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_COLOR.png)
Replaces hue and saturation of destination with hue and saturation of source, leaving luminosity unchanged.

<br />

<br />

<br />

### COLOR_BURN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode COLOR_BURN
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_COLOR_BURN.png)
Makes destination darker to reflect source.

<br />


\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)


\\begin{equation}
C_{out} =
\\begin{cases}
C_{dst} + C_{src}\*(1 - \\alpha_{dst}) \& C_{dst} = \\alpha_{dst} \\\\
C_{dst}\*(1 - \\alpha_{src}) \& C_{src} = 0 \\\\
\\alpha_{src}\*(\\alpha_{dst} - min(\\alpha_{dst}, (\\alpha_{dst}
- C_{dst})\*\\alpha_{src}/C_{src}))
+ C_{src} \* (1 - \\alpha_{dst}) + \\C{dst}\*(1-\\alpha_{src}) \& otherwise
\\end{cases}
\\end{equation}

<br />

<br />

### COLOR_DODGE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode COLOR_DODGE
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_COLOR_DODGE.png)
Makes destination brighter to reflect source.

<br />


\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)


\\begin{equation}
C_{out} =
\\begin{cases}
C_{src} \* (1 - \\alpha_{dst}) \& C_{dst} = 0 \\\\
C_{src} + \\C_{dst}\*(1 - \\alpha_{src}) \& C_{src} = \\alpha_{src} \\\\
\\alpha_{src} \* min(\\alpha_{dst}, C_{dst} \* \\alpha_{src}/(\\alpha_{src} - C_{src}))
+ C_{src} \*(1 - \\alpha_{dst} + \\C_{dst}\*(1 - \\alpha_{src}) \& otherwise
\\end{cases}
\\end{equation}

<br />

<br />

### DARKEN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DARKEN
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DARKEN.png)
Retains the smallest component of the source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)


\\(C_{out} =
(1 - \\alpha_{dst}) \* C_{src} + (1 - \\alpha_{src}) \* C_{dst} + min(C_{src}, C_{dst})\\)

<br />

<br />

### DIFFERENCE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DIFFERENCE
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DIFFERENCE.png)
Subtracts darker from lighter with higher contrast.

<br />


\\begin{equation}
\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}
\\end{equation}


\\begin{equation}
C_{out} = C_{src} + C_{dst} - 2 \* min(C_{src}
\* \\alpha_{dst}, C_{dst} \* \\alpha_{src})
\\end{equation}

<br />

<br />

### DST

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DST
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST.png)
The source pixels are discarded, leaving the destination intact.

<br />

\\(\\alpha_{out} = \\alpha_{dst}\\)

\\(C_{out} = C_{dst}\\)

<br />

<br />

### DST_ATOP

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DST_ATOP
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_ATOP.png)
Discards the destination pixels that are not covered by source pixels. Draws remaining destination pixels over source pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src}\\)

\\(C_{out} = \\alpha_{src} \* C_{dst} + (1 - \\alpha_{dst}) \* C_{src}\\)

<br />

<br />

### DST_IN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DST_IN
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_IN.png)
Keeps the destination pixels that cover source pixels, discards the remaining source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{dst} \* \\alpha_{src}\\)

<br />

<br />

### DST_OUT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DST_OUT
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_OUT.png)
Keeps the destination pixels that are not covered by source pixels. Discards destination pixels that are covered by source pixels. Discards all source pixels.

<br />

\\(\\alpha_{out} = (1 - \\alpha_{src}) \* \\alpha_{dst}\\)

\\(C_{out} = (1 - \\alpha_{src}) \* C_{dst}\\)

<br />

<br />

### DST_OVER

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode DST_OVER
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DST_OVER.png)
The source pixels are drawn behind the destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{dst} + (1 - \\alpha_{dst}) \* \\alpha_{src}\\)

\\(C_{out} = C_{dst} + (1 - \\alpha_{dst}) \* C_{src}\\)

<br />

<br />

### EXCLUSION

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode EXCLUSION
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_DIFFERENCE.png)
Subtracts darker from lighter with lower contrast.

<br />


\\begin{equation}
\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}
\\end{equation}


\\begin{equation}
C_{out} = C_{src} + C_{dst} - 2 \* C_{src} \* C_{dst}
\\end{equation}

<br />

<br />

### HARD_LIGHT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode HARD_LIGHT
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_HARD_LIGHT.png)
Makes destination lighter or darker, depending on source.

<br />


\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)


\\begin{equation}
C_{out} =
\\begin{cases}
2\*C_{src}\*C_{dst} \& C_{src}\*(1-\\alpha_{dst}) + C_{dst}\*(1-\\alpha_{src}) + 2\*C_{src}
\\leq \\alpha_{src} \\\\
\\alpha_{src}\*\\alpha_{dst}- 2\*(\\alpha_{dst} - C_{dst})\*(\\alpha_{src} - C_{src})
\& otherwise
\\end{cases}
\\end{equation}

<br />

<br />

### HUE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode HUE
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_HUE.png)
Replaces hue of destination with hue of source, leaving saturation and luminosity unchanged.

<br />

<br />

<br />

### LIGHTEN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode LIGHTEN
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_LIGHTEN.png)
Retains the largest component of the source and destination pixel.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)


\\(C_{out} =
(1 - \\alpha_{dst}) \* C_{src} + (1 - \\alpha_{src}) \* C_{dst} + max(C_{src}, C_{dst})\\)

<br />

<br />

### LUMINOSITY

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode LUMINOSITY
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_LUMINOSITY.png)
Replaces luminosity of destination with luminosity of source, leaving hue and saturation unchanged.

<br />

<br />

<br />

### MODULATE

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode MODULATE
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_MODULATE.png)
Multiplies the source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} \* C_{dst}\\)

<br />

<br />

### MULTIPLY

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode MULTIPLY
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_MODULATE.png)
Multiplies the source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} =
C_{src} \* (1 - \\alpha_{dst}) + C_{dst} \* (1 - \\alpha_{src}) + (C_{src} \* C_{dst})\\)

<br />

<br />

### OVERLAY

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode OVERLAY
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_OVERLAY.png)
Multiplies or screens the source and destination depending on the destination color.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(\\begin{equation}
C_{out} = \\begin{cases} 2 \* C_{src} \* C_{dst} \& 2 \* C_{dst} \\lt \\alpha_{dst} \\\\
\\alpha_{src} \* \\alpha_{dst} - 2 (\\alpha_{dst} - C_{src}) (\\alpha_{src} - C_{dst}) \&
otherwise \\end{cases}
\\end{equation}\\)

<br />

<br />

### PLUS

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode PLUS
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_PLUS.png)
Adds the source pixels to the destination pixels and saturates the result.

<br />

\\(\\alpha_{out} = max(0, min(\\alpha_{src} + \\alpha_{dst}, 1))\\)

\\(C_{out} = max(0, min(C_{src} + C_{dst}, 1))\\)

<br />

<br />

### SATURATION

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SATURATION
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SATURATION.png)
Replaces saturation of destination saturation hue of source, leaving hue and luminosity unchanged.

<br />

<br />

<br />

### SCREEN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SCREEN
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SCREEN.png)
Adds the source and destination pixels, then subtracts the source pixels multiplied by the destination.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} + C_{dst} - C_{src} \* C_{dst}\\)

<br />

<br />

### SOFT_LIGHT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SOFT_LIGHT
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SOFT_LIGHT.png)
Makes destination lighter or darker, depending on source.

<br />


Where
\\begin{equation}
m =
\\begin{cases}
C_{dst} / \\alpha_{dst} \& \\alpha_{dst} \\gt 0 \\\\
0 \& otherwise
\\end{cases}
\\end{equation}


\\begin{equation}
g =
\\begin{cases}
(16 \* m \* m + 4 \* m) \* (m - 1) + 7 \* m \& 4 \* C_{dst} \\leq \\alpha_{dst} \\\\
\\sqrt m - m \& otherwise
\\end{cases}
\\end{equation}


\\begin{equation}
f =
\\begin{cases}
C_{dst} \* (\\alpha_{src} + (2 \* C_{src} - \\alpha_{src}) \* (1 - m))
\& 2 \* C_{src} \\leq \\alpha_{src} \\\\
C_{dst} \* \\alpha_{src} + \\alpha_{dst} \* (2 \* C_{src} - \\alpha_{src}) \* g
\& otherwise
\\end{cases}
\\end{equation}


\\begin{equation}
\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}
\\end{equation}
\\begin{equation}
C_{out} = C_{src} / \\alpha_{dst} + C_{dst} / \\alpha_{src} + f
\\end{equation}

<br />

<br />

### SRC

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SRC
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC.png)
The source pixels replace the destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src}\\)

\\(C_{out} = C_{src}\\)

<br />

<br />

### SRC_ATOP

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SRC_ATOP
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_ATOP.png)
Discards the source pixels that do not cover destination pixels. Draws remaining source pixels over destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{dst}\\)

\\(C_{out} = \\alpha_{dst} \* C_{src} + (1 - \\alpha_{src}) \* C_{dst}\\)

<br />

<br />

### SRC_IN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SRC_IN
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_IN.png)
Keeps the source pixels that cover the destination pixels, discards the remaining source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} \* \\alpha_{dst}\\)

<br />

<br />

### SRC_OUT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SRC_OUT
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_OUT.png)
Keeps the source pixels that do not cover destination pixels. Discards source pixels that cover destination pixels. Discards all destination pixels.

<br />

\\(\\alpha_{out} = (1 - \\alpha_{dst}) \* \\alpha_{src}\\)

\\(C_{out} = (1 - \\alpha_{dst}) \* C_{src}\\)

<br />

<br />

### SRC_OVER

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode SRC_OVER
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_SRC_OVER.png)
The source pixels are drawn over the destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} + (1 - \\alpha_{src}) \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} + (1 - \\alpha_{src}) \* C_{dst}\\)

<br />

<br />

### XOR

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final BlendMode XOR
```


![](https://developer.android.com/static/reference/android/images/graphics/blendmode_XOR.png)
Discards the source and destination pixels where source pixels cover destination pixels. Draws remaining source pixels.

<br />


\\(\\alpha_{out} = (1 - \\alpha_{dst}) \* \\alpha_{src} + (1 - \\alpha_{src}) \* \\alpha_{dst}\\)

\\(C_{out} = (1 - \\alpha_{dst}) \* C_{src} + (1 - \\alpha_{src}) \* C_{dst}\\)

<br />

<br />

## Public methods

### valueOf

```
public static BlendMode valueOf (String name)
```

<br />

<br />

| Parameters ||
|---|---|
| `name` | `String` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/graphics/BlendMode` | <br /> |

### values

```
public static final BlendMode[] values ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/graphics/BlendMode` | <br /> |