Added in API level 29

BlendMode


class BlendMode

Summary

Enum values

CLEAR

Added in API level 29
enum val CLEAR : BlendMode

Destination pixels covered by the source are cleared to 0.

αout=0

Cout=0

COLOR

Added in API level 29
enum val COLOR : BlendMode

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

COLOR_BURN

Added in API level 29
enum val COLOR_BURN : BlendMode

Makes destination darker to reflect source.

αout=αsrc+αdstαsrcαdst

Cout={Cdst+Csrc(1αdst)Cdst=αdstαdst(1αsrc)Csrc=0αsrc(αdstmin(αdst,(αdstCdst)αsrc/Csrc))+Csrc(1αdst)+αdst(1αsrc)otherwise

COLOR_DODGE

Added in API level 29
enum val COLOR_DODGE : BlendMode

Makes destination brighter to reflect source.

αout=αsrc+αdstαsrcαdst

Cout={Csrc(1αdst)Cdst=0Csrc+αdst(1αsrc)Csrc=αsrcαsrcmin(αdst,Cdstαsrc/(αsrcCsrc))+Csrc(1αdst+αdst(1αsrc)otherwise

DARKEN

Added in API level 29
enum val DARKEN : BlendMode

Retains the smallest component of the source and destination pixels.

αout=αsrc+αdstαsrcαdst

Cout=(1αdst)Csrc+(1αsrc)Cdst+min(Csrc,Cdst)

DIFFERENCE

Added in API level 29
enum val DIFFERENCE : BlendMode

Subtracts darker from lighter with higher contrast.

αout=αsrc+αdstαsrcαdst

Cout=Csrc+Cdst2min(Csrcαdst,Cdstαsrc)

DST

Added in API level 29
enum val DST : BlendMode

The source pixels are discarded, leaving the destination intact.

αout=αdst

Cout=Cdst

DST_ATOP

Added in API level 29
enum val DST_ATOP : BlendMode

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

αout=αsrc

Cout=αsrcCdst+(1αdst)Csrc

DST_IN

Added in API level 29
enum val DST_IN : BlendMode

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

αout=αsrcαdst

Cout=Cdstαsrc

DST_OUT

Added in API level 29
enum val DST_OUT : BlendMode

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

αout=(1αsrc)αdst

Cout=(1αsrc)Cdst

DST_OVER

Added in API level 29
enum val DST_OVER : BlendMode

The source pixels are drawn behind the destination pixels.

αout=αdst+(1αdst)αsrc

Cout=Cdst+(1αdst)Csrc

EXCLUSION

Added in API level 29
enum val EXCLUSION : BlendMode

Subtracts darker from lighter with lower contrast.

αout=αsrc+αdstαsrcαdst

Cout=Csrc+Cdst2CsrcCdst

HARD_LIGHT

Added in API level 29
enum val HARD_LIGHT : BlendMode

Makes destination lighter or darker, depending on source.

αout=αsrc+αdstαsrcαdst

Cout={2CsrcCdstCsrc(1αdst)+Cdst(1αsrc)+2Csrcαsrcαsrcαdst2(αdstCdst)(αsrcCsrc)otherwise

HUE

Added in API level 29
enum val HUE : BlendMode

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

LIGHTEN

Added in API level 29
enum val LIGHTEN : BlendMode

Retains the largest component of the source and destination pixel.

αout=αsrc+αdstαsrcαdst

Cout=(1αdst)Csrc+(1αsrc)Cdst+max(Csrc,Cdst)

LUMINOSITY

Added in API level 29
enum val LUMINOSITY : BlendMode

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

MODULATE

Added in API level 29
enum val MODULATE : BlendMode

Multiplies the source and destination pixels.

αout=αsrcαdst

Cout=CsrcCdst

MULTIPLY

Added in API level 29
enum val MULTIPLY : BlendMode

Multiplies the source and destination pixels.

αout=αsrc+αdstαsrcαdst

Cout=Csrc(1αdst)+Cdst(1αsrc)+(CsrcCdst)

OVERLAY

Added in API level 29
enum val OVERLAY : BlendMode

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

αout=αsrc+αdstαsrcαdst

Cout={2CsrcCdst2Cdst<αdstαsrcαdst2(αdstCsrc)(αsrcCdst)otherwise

PLUS

Added in API level 29
enum val PLUS : BlendMode

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

αout=max(0,min(αsrc+αdst,1))

Cout=max(0,min(Csrc+Cdst,1))

SATURATION

Added in API level 29
enum val SATURATION : BlendMode

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

SCREEN

Added in API level 29
enum val SCREEN : BlendMode

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

αout=αsrc+αdstαsrcαdst

Cout=Csrc+CdstCsrcCdst

SOFT_LIGHT

Added in API level 29
enum val SOFT_LIGHT : BlendMode

Makes destination lighter or darker, depending on source.

Where

m={Cdst/αdstαdst>00otherwise

g={(16mm+4m)(m1)+7m4Cdstαdstmmotherwise

f={Cdst(αsrc+(2Csrcαsrc)(1m))2CsrcαsrcCdstαsrc+αdst(2Csrcαsrc)gotherwise

αout=αsrc+αdstαsrcαdst
Cout=Csrc/αdst+Cdst/αsrc+f

SRC

Added in API level 29
enum val SRC : BlendMode

The source pixels replace the destination pixels.

αout=αsrc

Cout=Csrc

SRC_ATOP

Added in API level 29
enum val SRC_ATOP : BlendMode

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

αout=αdst

Cout=αdstCsrc+(1αsrc)Cdst

SRC_IN

Added in API level 29
enum val SRC_IN : BlendMode

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

αout=αsrcαdst

Cout=Csrcαdst

SRC_OUT

Added in API level 29
enum val SRC_OUT : BlendMode

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

αout=(1αdst)αsrc

Cout=(1αdst)Csrc

SRC_OVER

Added in API level 29
enum val SRC_OVER : BlendMode

The source pixels are drawn over the destination pixels.

αout=αsrc+(1αsrc)αdst

Cout=Csrc+(1αsrc)Cdst

XOR

Added in API level 29
enum val XOR : BlendMode

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

αout=(1αdst)αsrc+(1αsrc)αdst

Cout=(1αdst)Csrc+(1αsrc)Cdst

Learn how to use the Android Emulator camera.

Updated Apr 12, 2023

Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.

Updated Dec 18, 2024

Learn how to use snapshots to launch the Android Emulator.

Updated Jul 2, 2024