BlendModeCompat

public final enum BlendModeCompat
extends Enum<BlendModeCompat>

java.lang.Object
   ↳ java.lang.Enum<androidx.core.graphics.BlendModeCompat>
     ↳ androidx.core.graphics.BlendModeCompat


Compat version of BlendMode, usages of BlendModeCompat will map to PorterDuff.Mode wherever possible

Summary

Enum values

BlendModeCompat  CLEAR

Destination pixels covered by the source are cleared to 0. 

BlendModeCompat  COLOR

Replaces hue and saturation of destination with hue and saturation of source, leaving luminosity unchanged. 

BlendModeCompat  COLOR_BURN

Makes destination darker to reflect source. 

BlendModeCompat  COLOR_DODGE

Makes destination brighter to reflect source. 

BlendModeCompat  DARKEN

Retains the smallest component of the source and destination pixels. 

BlendModeCompat  DIFFERENCE

Subtracts darker from lighter with higher contrast. 

BlendModeCompat  DST

The source pixels are discarded, leaving the destination intact. 

BlendModeCompat  DST_ATOP

Discards the destination pixels that are not covered by source pixels. 

BlendModeCompat  DST_IN

Keeps the destination pixels that cover source pixels, discards the remaining source and destination pixels. 

BlendModeCompat  DST_OUT

Keeps the destination pixels that are not covered by source pixels. 

BlendModeCompat  DST_OVER

The source pixels are drawn behind the destination pixels. 

BlendModeCompat  EXCLUSION

Subtracts darker from lighter with lower contrast. 

BlendModeCompat  HARD_LIGHT

Makes destination lighter or darker, depending on source. 

BlendModeCompat  HUE

Replaces hue of destination with hue of source, leaving saturation and luminosity unchanged. 

BlendModeCompat  LIGHTEN

Retains the largest component of the source and destination pixel. 

BlendModeCompat  LUMINOSITY

Replaces luminosity of destination with luminosity of source, leaving hue and saturation unchanged. 

BlendModeCompat  MODULATE

Multiplies the source and destination pixels. 

BlendModeCompat  MULTIPLY

Multiplies the source and destination pixels. 

BlendModeCompat  OVERLAY

Multiplies or screens the source and destination depending on the destination color. 

BlendModeCompat  PLUS

Adds the source pixels to the destination pixels and saturates the result. 

BlendModeCompat  SATURATION

Replaces saturation of destination saturation hue of source, leaving hue and luminosity unchanged. 

BlendModeCompat  SCREEN

Adds the source and destination pixels, then subtracts the source pixels multiplied by the destination. 

BlendModeCompat  SOFT_LIGHT

Makes destination lighter or darker, depending on source. 

BlendModeCompat  SRC

The source pixels replace the destination pixels. 

BlendModeCompat  SRC_ATOP

Discards the source pixels that do not cover destination pixels. 

BlendModeCompat  SRC_IN

Keeps the source pixels that cover the destination pixels, discards the remaining source and destination pixels. 

BlendModeCompat  SRC_OUT

Keeps the source pixels that do not cover destination pixels. 

BlendModeCompat  SRC_OVER

The source pixels are drawn over the destination pixels. 

BlendModeCompat  XOR

Discards the source and destination pixels where source pixels cover destination pixels. 

Public methods

static BlendModeCompat valueOf(String name)
static final BlendModeCompat[] values()

Inherited methods

Enum values

CLEAR

public static final BlendModeCompat CLEAR

Destination pixels covered by the source are cleared to 0.

\(\alpha_{out} = 0\)

\(C_{out} = 0\)

COLOR

public static final BlendModeCompat COLOR

Replaces hue and saturation of destination with hue and saturation of source, leaving luminosity unchanged.

COLOR_BURN

public static final BlendModeCompat COLOR_BURN

Makes destination darker to reflect source.

\(\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} \\ \alpha_{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}) + \alpha_{dst}*(1-\alpha_{src}) & otherwise \end{cases} \end{equation}

COLOR_DODGE

public static final BlendModeCompat COLOR_DODGE

Makes destination brighter to reflect source. \(\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} + \alpha_{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} + \alpha_{dst}*(1 - \alpha_{src}) & otherwise \end{cases} \end{equation}

DARKEN

public static final BlendModeCompat DARKEN

Retains the smallest component of the source and destination pixels.

\(\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})\)

DIFFERENCE

public static final BlendModeCompat DIFFERENCE

Subtracts darker from lighter with higher contrast.

\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}

DST

public static final BlendModeCompat DST

The source pixels are discarded, leaving the destination intact.

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

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

DST_ATOP

public static final BlendModeCompat DST_ATOP

Discards the destination pixels that are not covered by source pixels. Draws remaining destination pixels over source pixels.

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

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

DST_IN

public static final BlendModeCompat DST_IN

Keeps the destination pixels that cover source pixels, discards the remaining source and destination pixels.

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

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

DST_OUT

public static final BlendModeCompat DST_OUT

Keeps the destination pixels that are not covered by source pixels. Discards destination pixels that are covered by source pixels. Discards all source pixels.

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

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

DST_OVER

public static final BlendModeCompat DST_OVER

The source pixels are drawn behind the destination pixels.

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

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

EXCLUSION

public static final BlendModeCompat EXCLUSION

Subtracts darker from lighter with lower contrast.

\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}

HARD_LIGHT

public static final BlendModeCompat HARD_LIGHT

Makes destination lighter or darker, depending on source.

\(\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}

HUE

public static final BlendModeCompat HUE

Replaces hue of destination with hue of source, leaving saturation and luminosity unchanged.

LIGHTEN

public static final BlendModeCompat LIGHTEN

Retains the largest component of the source and destination pixel.

\(\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})\)

LUMINOSITY

public static final BlendModeCompat LUMINOSITY

Replaces luminosity of destination with luminosity of source, leaving hue and saturation unchanged.

MODULATE

public static final BlendModeCompat MODULATE

Multiplies the source and destination pixels.

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

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

MULTIPLY

public static final BlendModeCompat MULTIPLY

Multiplies the source and destination pixels.

\(\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})\)

OVERLAY

public static final BlendModeCompat OVERLAY

Multiplies or screens the source and destination depending on the destination color.

\(\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}\)

PLUS

public static final BlendModeCompat PLUS

Adds the source pixels to the destination pixels and saturates the result.

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

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

SATURATION

public static final BlendModeCompat SATURATION

Replaces saturation of destination saturation hue of source, leaving hue and luminosity unchanged.

SCREEN

public static final BlendModeCompat SCREEN

Adds the source and destination pixels, then subtracts the source pixels multiplied by the destination.

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

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

SOFT_LIGHT

public static final BlendModeCompat SOFT_LIGHT

Makes destination lighter or darker, depending on source.

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}

SRC

public static final BlendModeCompat SRC

The source pixels replace the destination pixels.

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

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

SRC_ATOP

public static final BlendModeCompat SRC_ATOP

Discards the source pixels that do not cover destination pixels. Draws remaining source pixels over destination pixels.

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

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

SRC_IN

public static final BlendModeCompat SRC_IN

Keeps the source pixels that cover the destination pixels, discards the remaining source and destination pixels.

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

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

SRC_OUT

public static final BlendModeCompat SRC_OUT

Keeps the source pixels that do not cover destination pixels. Discards source pixels that cover destination pixels. Discards all destination pixels.

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

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

SRC_OVER

public static final BlendModeCompat SRC_OVER

The source pixels are drawn over the destination pixels.

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

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

XOR

public static final BlendModeCompat XOR

Discards the source and destination pixels where source pixels cover destination pixels. Draws remaining source pixels.

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

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

Public methods

valueOf

public static BlendModeCompat valueOf (String name)

Parameters
name String

Returns
BlendModeCompat

values

public static final BlendModeCompat[] values ()

Returns
BlendModeCompat[]