Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.
Android 0.0.0 Developer Preview
belongs to Maven artifact androidx.palette:palette:1.0.0-rc01

Palette

public final class Palette
extends Object

java.lang.Object
   ↳ androidx.palette.graphics.Palette


A helper class to extract prominent colors from an image.

A number of colors with different profiles are extracted from the image:

  • Vibrant
  • Vibrant Dark
  • Vibrant Light
  • Muted
  • Muted Dark
  • Muted Light
These can be retrieved from the appropriate getter method.

Instances are created with a Palette.Builder which supports several options to tweak the generated Palette. See that class' documentation for more information.

Generation should always be completed on a background thread, ideally the one in which you load your image on. Palette.Builder supports both synchronous and asynchronous generation:

 // Synchronous
 Palette p = Palette.from(bitmap).generate();

 // Asynchronous
 Palette.from(bitmap).generate(new PaletteAsyncListener() {
     public void onGenerated(Palette p) {
         // Use generated instance
     }
 });
 

Summary

Nested classes

class Palette.Builder

Builder class for generating Palette instances. 

interface Palette.Filter

A Filter provides a mechanism for exercising fine-grained control over which colors are valid within a resulting Palette

interface Palette.PaletteAsyncListener

Listener to be used with Palette.generateAsync(Bitmap, PaletteAsyncListener) or Palette.generateAsync(Bitmap, int, PaletteAsyncListener)  

class Palette.Swatch

Represents a color swatch generated from an image's palette. 

Public methods

static Palette from(List<Palette.Swatch> swatches)

Generate a Palette from the pre-generated list of Palette.Swatch swatches.

static Palette.Builder from(Bitmap bitmap)

Start generating a Palette with the returned Palette.Builder instance.

static Palette generate(Bitmap bitmap, int numColors)

This method was deprecated in API level 0.0.0. Use Palette.Builder to generate the Palette.

static Palette generate(Bitmap bitmap)

This method was deprecated in API level 0.0.0. Use Palette.Builder to generate the Palette.

static AsyncTask<Bitmap, Void, Palette> generateAsync(Bitmap bitmap, int numColors, Palette.PaletteAsyncListener listener)

This method was deprecated in API level 0.0.0. Use Palette.Builder to generate the Palette.

static AsyncTask<Bitmap, Void, Palette> generateAsync(Bitmap bitmap, Palette.PaletteAsyncListener listener)

This method was deprecated in API level 0.0.0. Use Palette.Builder to generate the Palette.

int getColorForTarget(Target target, int defaultColor)

Returns the selected color for the given target from the palette as an RGB packed int.

int getDarkMutedColor(int defaultColor)

Returns a muted and dark color from the palette as an RGB packed int.

Palette.Swatch getDarkMutedSwatch()

Returns a muted and dark swatch from the palette.

int getDarkVibrantColor(int defaultColor)

Returns a dark and vibrant color from the palette as an RGB packed int.

Palette.Swatch getDarkVibrantSwatch()

Returns a dark and vibrant swatch from the palette.

int getDominantColor(int defaultColor)

Returns the color of the dominant swatch from the palette, as an RGB packed int.

Palette.Swatch getDominantSwatch()

Returns the dominant swatch from the palette.

int getLightMutedColor(int defaultColor)

Returns a muted and light color from the palette as an RGB packed int.

Palette.Swatch getLightMutedSwatch()

Returns a muted and light swatch from the palette.

int getLightVibrantColor(int defaultColor)

Returns a light and vibrant color from the palette as an RGB packed int.

Palette.Swatch getLightVibrantSwatch()

Returns a light and vibrant swatch from the palette.

int getMutedColor(int defaultColor)

Returns a muted color from the palette as an RGB packed int.

Palette.Swatch getMutedSwatch()

Returns a muted swatch from the palette.

Palette.Swatch getSwatchForTarget(Target target)

Returns the selected swatch for the given target from the palette, or null if one could not be found.

List<Palette.Swatch> getSwatches()

Returns all of the swatches which make up the palette.

List<Target> getTargets()

Returns the targets used to generate this palette.

int getVibrantColor(int defaultColor)

Returns the most vibrant color in the palette as an RGB packed int.

Palette.Swatch getVibrantSwatch()

Returns the most vibrant swatch in the palette.

Inherited methods

Public methods

from

public static Palette from (List<Palette.Swatch> swatches)

Generate a Palette from the pre-generated list of Palette.Swatch swatches. This is useful for testing, or if you want to resurrect a Palette instance from a list of swatches. Will return null if the swatches is null.

Parameters
swatches List

Returns
Palette

from

public static Palette.Builder from (Bitmap bitmap)

Start generating a Palette with the returned Palette.Builder instance.

Parameters
bitmap Bitmap

Returns
Palette.Builder

generate

public static Palette generate (Bitmap bitmap, 
                int numColors)

This method was deprecated in API level 0.0.0.
Use Palette.Builder to generate the Palette.

Parameters
bitmap Bitmap

numColors int

Returns
Palette

generate

public static Palette generate (Bitmap bitmap)

This method was deprecated in API level 0.0.0.
Use Palette.Builder to generate the Palette.

Parameters
bitmap Bitmap

Returns
Palette

generateAsync

public static AsyncTask<Bitmap, Void, Palette> generateAsync (Bitmap bitmap, 
                int numColors, 
                Palette.PaletteAsyncListener listener)

This method was deprecated in API level 0.0.0.
Use Palette.Builder to generate the Palette.

Parameters
bitmap Bitmap

numColors int

listener Palette.PaletteAsyncListener

Returns
AsyncTask<Bitmap, Void, Palette>

generateAsync

public static AsyncTask<Bitmap, Void, Palette> generateAsync (Bitmap bitmap, 
                Palette.PaletteAsyncListener listener)

This method was deprecated in API level 0.0.0.
Use Palette.Builder to generate the Palette.

Parameters
bitmap Bitmap

listener Palette.PaletteAsyncListener

Returns
AsyncTask<Bitmap, Void, Palette>

getColorForTarget

public int getColorForTarget (Target target, 
                int defaultColor)

Returns the selected color for the given target from the palette as an RGB packed int.

Parameters
target Target

defaultColor int: value to return if the swatch isn't available

Returns
int

getDarkMutedColor

public int getDarkMutedColor (int defaultColor)

Returns a muted and dark color from the palette as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

getDarkMutedSwatch

public Palette.Swatch getDarkMutedSwatch ()

Returns a muted and dark swatch from the palette. Might be null.

Returns
Palette.Swatch

See also:

getDarkVibrantColor

public int getDarkVibrantColor (int defaultColor)

Returns a dark and vibrant color from the palette as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

getDarkVibrantSwatch

public Palette.Swatch getDarkVibrantSwatch ()

Returns a dark and vibrant swatch from the palette. Might be null.

Returns
Palette.Swatch

getDominantColor

public int getDominantColor (int defaultColor)

Returns the color of the dominant swatch from the palette, as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

getDominantSwatch

public Palette.Swatch getDominantSwatch ()

Returns the dominant swatch from the palette.

The dominant swatch is defined as the swatch with the greatest population (frequency) within the palette.

Returns
Palette.Swatch

getLightMutedColor

public int getLightMutedColor (int defaultColor)

Returns a muted and light color from the palette as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

getLightMutedSwatch

public Palette.Swatch getLightMutedSwatch ()

Returns a muted and light swatch from the palette. Might be null.

Returns
Palette.Swatch

See also:

getLightVibrantColor

public int getLightVibrantColor (int defaultColor)

Returns a light and vibrant color from the palette as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

getLightVibrantSwatch

public Palette.Swatch getLightVibrantSwatch ()

Returns a light and vibrant swatch from the palette. Might be null.

Returns
Palette.Swatch

getMutedColor

public int getMutedColor (int defaultColor)

Returns a muted color from the palette as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

See also:

getMutedSwatch

public Palette.Swatch getMutedSwatch ()

Returns a muted swatch from the palette. Might be null.

Returns
Palette.Swatch

See also:

getSwatchForTarget

public Palette.Swatch getSwatchForTarget (Target target)

Returns the selected swatch for the given target from the palette, or null if one could not be found.

Parameters
target Target

Returns
Palette.Swatch

getSwatches

public List<Palette.Swatch> getSwatches ()

Returns all of the swatches which make up the palette.

Returns
List<Palette.Swatch>

getTargets

public List<Target> getTargets ()

Returns the targets used to generate this palette.

Returns
List<Target>

getVibrantColor

public int getVibrantColor (int defaultColor)

Returns the most vibrant color in the palette as an RGB packed int.

Parameters
defaultColor int: value to return if the swatch isn't available

Returns
int

See also:

getVibrantSwatch

public Palette.Swatch getVibrantSwatch ()

Returns the most vibrant swatch in the palette. Might be null.

Returns
Palette.Swatch

See also: