BlendMode
  public
  
  final
  
  enum
  BlendMode
  
  
  
  
    extends Enum<BlendMode>
  
  
  
  
  
  
| java.lang.Object | ||
| ↳ | java.lang.Enum<android.graphics.BlendMode> | |
| ↳ | android.graphics.BlendMode | |
Summary
Enum values | |
|---|---|
BlendMode  | 
    
      CLEAR
      
    | 
  
BlendMode  | 
    
      COLOR
      
       | 
  
BlendMode  | 
    
      COLOR_BURN
      
       | 
  
BlendMode  | 
    
      COLOR_DODGE
      
       | 
  
BlendMode  | 
    
      DARKEN
      
       | 
  
BlendMode  | 
    
      DIFFERENCE
      
       | 
  
BlendMode  | 
    
      DST
      
       | 
  
BlendMode  | 
    
      DST_ATOP
      
       | 
  
BlendMode  | 
    
      DST_IN
      
       | 
  
BlendMode  | 
    
      DST_OUT
      
       | 
  
BlendMode  | 
    
      DST_OVER
      
       | 
  
BlendMode  | 
    
      EXCLUSION
      
       | 
  
BlendMode  | 
    
      HARD_LIGHT
      
       | 
  
BlendMode  | 
    
      HUE
      
       | 
  
BlendMode  | 
    
      LIGHTEN
      
       | 
  
BlendMode  | 
    
      LUMINOSITY
      
       | 
  
BlendMode  | 
    
      MODULATE
      
       | 
  
BlendMode  | 
    
      MULTIPLY
      
       | 
  
BlendMode  | 
    
      OVERLAY
      
       | 
  
BlendMode  | 
    
      PLUS
      
       | 
  
BlendMode  | 
    
      SATURATION
      
       | 
  
BlendMode  | 
    
      SCREEN
      
       | 
  
BlendMode  | 
    
      SOFT_LIGHT
      
       | 
  
BlendMode  | 
    
      SRC
      
       | 
  
BlendMode  | 
    
      SRC_ATOP
      
       | 
  
BlendMode  | 
    
      SRC_IN
      
       | 
  
BlendMode  | 
    
      SRC_OUT
      
       | 
  
BlendMode  | 
    
      SRC_OVER
      
       | 
  
BlendMode  | 
    
      XOR
      
       | 
  
Public methods | |
|---|---|
        
        
        static
        
        
        BlendMode
     | 
  
    
      
      valueOf(String name)
      
      
     | 
  
        
        
        static
        final
        
        BlendMode[]
     | 
  
    
      
      values()
      
      
     | 
  
Inherited methods | |
|---|---|
Enum values
CLEAR
public static final BlendMode CLEAR
  
  
\(\alpha_{out} = 0\)
\(C_{out} = 0\)
COLOR
public static final BlendMode COLOR
     
     
COLOR_BURN
public static final BlendMode COLOR_BURN
     
     
\(\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 BlendMode COLOR_DODGE
     
     
\(\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 BlendMode DARKEN
     
     
\(\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 BlendMode DIFFERENCE
     
     
\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 BlendMode DST
     
     
\(\alpha_{out} = \alpha_{dst}\)
\(C_{out} = C_{dst}\)
DST_ATOP
public static final BlendMode DST_ATOP
     
     
\(\alpha_{out} = \alpha_{src}\)
\(C_{out} = \alpha_{src} * C_{dst} + (1 - \alpha_{dst}) * C_{src}\)
DST_IN
public static final BlendMode DST_IN
     
     
\(\alpha_{out} = \alpha_{src} * \alpha_{dst}\)
\(C_{out} = C_{dst} * \alpha_{src}\)
DST_OUT
public static final BlendMode DST_OUT
     
     
\(\alpha_{out} = (1 - \alpha_{src}) * \alpha_{dst}\)
\(C_{out} = (1 - \alpha_{src}) * C_{dst}\)
DST_OVER
public static final BlendMode DST_OVER
     
     
\(\alpha_{out} = \alpha_{dst} + (1 - \alpha_{dst}) * \alpha_{src}\)
\(C_{out} = C_{dst} + (1 - \alpha_{dst}) * C_{src}\)
EXCLUSION
public static final BlendMode EXCLUSION
     
     
\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 BlendMode HARD_LIGHT
     
     
\(\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 BlendMode HUE
     
     
LIGHTEN
public static final BlendMode LIGHTEN
     
     
\(\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 BlendMode LUMINOSITY
     
     
MODULATE
public static final BlendMode MODULATE
     
     
\(\alpha_{out} = \alpha_{src} * \alpha_{dst}\)
\(C_{out} = C_{src} * C_{dst}\)
MULTIPLY
public static final BlendMode MULTIPLY
     
     
\(\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 BlendMode OVERLAY
     
     
\(\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 BlendMode PLUS
     
     
\(\alpha_{out} = max(0, min(\alpha_{src} + \alpha_{dst}, 1))\)
\(C_{out} = max(0, min(C_{src} + C_{dst}, 1))\)
SATURATION
public static final BlendMode SATURATION
     
     
SCREEN
public static final BlendMode SCREEN
     
     
\(\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 BlendMode SOFT_LIGHT
     
     
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 BlendMode SRC
     
     
\(\alpha_{out} = \alpha_{src}\)
\(C_{out} = C_{src}\)
SRC_ATOP
public static final BlendMode SRC_ATOP
     
     
\(\alpha_{out} = \alpha_{dst}\)
\(C_{out} = \alpha_{dst} * C_{src} + (1 - \alpha_{src}) * C_{dst}\)
SRC_IN
public static final BlendMode SRC_IN
     
     
\(\alpha_{out} = \alpha_{src} * \alpha_{dst}\)
\(C_{out} = C_{src} * \alpha_{dst}\)
SRC_OUT
public static final BlendMode SRC_OUT
     
     
\(\alpha_{out} = (1 - \alpha_{dst}) * \alpha_{src}\)
\(C_{out} = (1 - \alpha_{dst}) * C_{src}\)
SRC_OVER
public static final BlendMode SRC_OVER
     
     
\(\alpha_{out} = \alpha_{src} + (1 - \alpha_{src}) * \alpha_{dst}\)
\(C_{out} = C_{src} + (1 - \alpha_{src}) * C_{dst}\)
XOR
public static final BlendMode XOR
     
     
\(\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
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.