Color
open class Color
kotlin.Any | |
↳ | android.graphics.Color |
The Color
class provides methods for creating, converting and manipulating colors. Colors have three different representations:
- Color ints, the most common representation
- Color longs
Color
instances
The section below describe each representation in detail.
Color ints
Color ints are the most common representation of colors on Android and have been used since API level 1
.
A color int always defines a color in the sRGB
color space using 4 components packed in a single 32 bit integer value:
Component | Name | Size | Range |
---|---|---|---|
A | Alpha | 8 bits | \([0..255]\) |
R | Red | 8 bits | \([0..255]\) |
G | Green | 8 bits | \([0..255]\) |
B | Blue | 8 bits | \([0..255]\) |
The components in this table are listed in encoding order (see below), which is why color ints are called ARGB colors.
Usage in code
To avoid confusing color ints with arbitrary integer values, it is a good practice to annotate them with the @ColorInt
annotation found in the Android Support Library.
Encoding
The four components of a color int are encoded in the following way:
int color = (A & 0xff) << 24 | (R & 0xff) << 16 | (G & 0xff) << 8 | (B & 0xff);
Because of this encoding, color ints can easily be described as an integer constant in source. For instance, opaque blue is 0xff0000ff
and yellow is 0xffffff00
.
To easily encode color ints, it is recommended to use the static methods argb(int,int,int,int)
and rgb(int,int,int)
. The second method omits the alpha component and assumes the color is opaque (alpha is 255). As a convenience this class also offers methods to encode color ints from components defined in the \([0..1]\) range: argb(float,float,float,float)
and rgb(float,float,float)
.
Color longs (defined below) can be easily converted to color ints by invoking the toArgb(long)
method. This method performs a color space conversion if needed.
It is also possible to create a color int by invoking the method toArgb()
on a color instance.
Decoding
The four ARGB components can be individually extracted from a color int using the following expressions:
int A = (color >> 24) & 0xff; // or color >>> 24 int R = (color >> 16) & 0xff; int G = (color >> 8) & 0xff; int B = (color ) & 0xff;
This class offers convenience methods to easily extract these components:
alpha(int)
to extract the alpha componentred(int)
to extract the red componentgreen(int)
to extract the green componentblue(int)
to extract the blue component
Color longs
Color longs are a representation introduced in Android O
to store colors in different color spaces
, with more precision than color ints.
A color long always defines a color using 4 components packed in a single 64 bit long value. One of these components is always alpha while the other three components depend on the color space's color model
. The most common color model is the RGB
model in which the components represent red, green and blue values.
Component ranges: the ranges defined in the tables below indicate the ranges that can be encoded in a color long. They do not represent the actual ranges as they may differ per color space. For instance, the RGB components of a color in the Display P3
color space use the \([0..1]\) range. Please refer to the documentation of the various color spaces
to find their respective ranges.
Alpha range: while alpha is encoded in a color long using a 10 bit integer (thus using a range of \([0..1023]\)), it is converted to and from \([0..1]\) float values when decoding and encoding color longs.
sRGB color space: for compatibility reasons and ease of use, color longs encoding sRGB
colors do not use the same encoding as other color longs.
Component | Name | Size | Range |
---|---|---|---|
RGB color model |
|||
R | Red | 16 bits | \([-65504.0, 65504.0]\) |
G | Green | 16 bits | \([-65504.0, 65504.0]\) |
B | Blue | 16 bits | \([-65504.0, 65504.0]\) |
A | Alpha | 10 bits | \([0..1023]\) |
Color space | 6 bits | \([0..63]\) | |
sRGB color space |
|||
A | Alpha | 8 bits | \([0..255]\) |
R | Red | 8 bits | \([0..255]\) |
G | Green | 8 bits | \([0..255]\) |
B | Blue | 8 bits | \([0..255]\) |
X | Unused | 32 bits | \(0\) |
XYZ color model |
|||
X | X | 16 bits | \([-65504.0, 65504.0]\) |
Y | Y | 16 bits | \([-65504.0, 65504.0]\) |
Z | Z | 16 bits | \([-65504.0, 65504.0]\) |
A | Alpha | 10 bits | \([0..1023]\) |
Color space | 6 bits | \([0..63]\) | |
Lab color model |
|||
L | L | 16 bits | \([-65504.0, 65504.0]\) |
a | a | 16 bits | \([-65504.0, 65504.0]\) |
b | b | 16 bits | \([-65504.0, 65504.0]\) |
A | Alpha | 10 bits | \([0..1023]\) |
Color space | 6 bits | \([0..63]\) | |
CMYK color model |
|||
Unsupported |
The components in this table are listed in encoding order (see below), which is why color longs in the RGB model are called RGBA colors (even if this doesn't quite hold for the special case of sRGB colors).
The color long encoding relies on half-precision float values (fp16). If you wish to know more about the limitations of half-precision float values, please refer to the documentation of the Half
class.
Usage in code
To avoid confusing color longs with arbitrary long values, it is a good practice to annotate them with the @ColorLong
annotation found in the Android Support Library.
Encoding
Given the complex nature of color longs, it is strongly encouraged to use the various methods provided by this class to encode them.
The most flexible way to encode a color long is to use the method pack(float,float,float,float,android.graphics.ColorSpace)
. This method allows you to specify three color components (typically RGB), an alpha component and a color space. To encode sRGB colors, use pack(float,float,float)
and pack(float,float,float,float)
which are the equivalent of rgb(int,int,int)
and argb(int,int,int,int)
for color ints. If you simply need to convert a color int into a color long, use pack(int)
.
It is also possible to create a color long value by invoking the method pack()
on a color instance.
Decoding
This class offers convenience methods to easily extract the components of a color long:
alpha(long)
to extract the alpha componentred(long)
to extract the red/X/L componentgreen(long)
to extract the green/Y/a componentblue(long)
to extract the blue/Z/b component
The values returned by these methods depend on the color space encoded in the color long. The values are however typically in the \([0..1]\) range for RGB colors. Please refer to the documentation of the various color spaces
for the exact ranges.
Color instances
Color instances are a representation introduced in Android O
to store colors in different color spaces
, with more precision than both color ints and color longs. Color instances also offer the ability to store more than 4 components if necessary.
Colors instances are immutable and can be created using one of the various valueOf
methods. For instance:
// sRGB Color opaqueRed = Color.valueOf(0xffff0000); // from a color int Color translucentRed = Color.valueOf(1.0f, 0.0f, 0.0f, 0.5f); // Wide gamut color @ColorLong long p3 = pack(1.0f, 1.0f, 0.0f, 1.0f, colorSpaceP3); Color opaqueYellow = Color.valueOf(p3); // from a color long // CIE L*a*b* color space ColorSpace lab = ColorSpace.get(ColorSpace.Named.LAB); Color green = Color.valueOf(100.0f, -128.0f, 128.0f, 1.0f, lab);
Color instances can be converted to color ints (toArgb()
) or color longs (pack()
). They also offer easy access to their various components using the following methods:
alpha()
, returns the alpha component valuered()
, returns the red component value (or first component value in non-RGB models)green()
, returns the green component value (or second component value in non-RGB models)blue()
, returns the blue component value (or third component value in non-RGB models)getComponent(int)
, returns a specific component valuegetComponents()
, returns all component values as an array
Color space conversions
You can convert colors from one color space to another using ColorSpace.connect(ColorSpace, ColorSpace)
and its variants. However, the Color
class provides a few convenience methods to simplify the process. Here is a brief description of some of them:
convert(android.graphics.ColorSpace)
to convert a color instance in a color space to a new color instance in a different color spaceconvert(float,float,float,float,android.graphics.ColorSpace,android.graphics.ColorSpace)
to convert a color from a source color space to a destination color spaceconvert(long,android.graphics.ColorSpace)
to convert a color long from its built-in color space to a destination color spaceconvert(int,android.graphics.ColorSpace)
to convert a color int from sRGB to a destination color space
Please refere to the ColorSpace
documentation for more information.
Alpha and transparency
The alpha component of a color defines the level of transparency of a color. When the alpha component is 0, the color is completely transparent. When the alpha is component is 1 (in the \([0..1]\) range) or 255 (in the \([0..255]\) range), the color is completely opaque.
The color representations described above do not use pre-multiplied color components (a pre-multiplied color component is a color component that has been multiplied by the value of the alpha component). For instance, the color int representation of opaque red is 0xffff0000
. For semi-transparent (50%) red, the representation becomes 0x80ff0000
. The equivalent color instance representations would be (1.0, 0.0, 0.0, 1.0)
and (1.0, 0.0, 0.0, 0.5)
.
Summary
Constants | |
---|---|
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
Public constructors | |
---|---|
Color() Creates a new color instance set to opaque black in the |
Public methods | |
---|---|
open static Int |
HSVToColor(hsv: FloatArray!) Convert HSV components to an ARGB color. |
open static Int |
HSVToColor(alpha: Int, hsv: FloatArray!) Convert HSV components to an ARGB color. |
open static Unit |
RGBToHSV(red: Int, green: Int, blue: Int, hsv: FloatArray!) Convert RGB components to HSV. |
open Float |
alpha() Returns the value of the alpha component in the range \([0..1]\). |
open static Int |
Return the alpha component of a color int. |
open static Float |
Returns the alpha component encoded in the specified color long. |
open static Int |
Return a color-int from alpha, red, green, blue float components in the range \([0..1]\). |
open static Int |
Return a color-int from alpha, red, green, blue components. |
open Float |
blue() Returns the value of the blue component in the range defined by this color's color space (see |
open static Int |
Return the blue component of a color int. |
open static Float |
Returns the blue component encoded in the specified color long. |
open static ColorSpace |
colorSpace(color: Long) Returns the color space encoded in the specified color long. |
open static Unit |
colorToHSV(color: Int, hsv: FloatArray!) Convert the ARGB color to its HSV components. |
open Color |
convert(colorSpace: ColorSpace) Converts this color from its color space to the specified color space. |
open static Long |
convert(r: Float, g: Float, b: Float, a: Float, source: ColorSpace, destination: ColorSpace) Converts the specified 3 component color from the source color space to the destination color space. |
open static Long |
Converts the specified 3 component color from a color space to another using the specified color space |
open static Long |
convert(color: Int, colorSpace: ColorSpace) Converts the specified ARGB color int from the |
open static Long |
convert(color: Long, colorSpace: ColorSpace) Converts the specified color long from its color space into the specified destination color space. |
open static Long |
convert(color: Long, connector: ColorSpace.Connector) Converts the specified color long from a color space to another using the specified color space |
open Boolean | |
open ColorSpace |
Returns this color's color space. |
open Float |
getComponent(component: Int) Returns the value of the specified component in the range defined by this color's color space (see |
open Int |
Returns the number of components that form a color value according to this color space's color model, plus one extra component for alpha. |
open FloatArray |
Returns this color's components as a new array. |
open FloatArray |
getComponents(components: FloatArray?) Copies this color's components in the supplied array. |
open ColorSpace.Model! |
getModel() Returns the color model of this color. |
open Float |
green() Returns the value of the green component in the range defined by this color's color space (see |
open static Int |
Return the green component of a color int. |
open static Float |
Returns the green component encoded in the specified color long. |
open Int |
hashCode() |
open static Boolean |
isInColorSpace(color: Long, colorSpace: ColorSpace) Indicates whether the specified color is in the specified color space. |
open Boolean |
isSrgb() Indicates whether this color is in the |
open static Boolean |
Indicates whether the specified color is in the |
open Boolean |
Indicates whether this color color is in a wide-gamut color space. |
open static Boolean |
isWideGamut(color: Long) Indicates whether the specified color is in a wide-gamut color space. |
open Float |
Returns the relative luminance of this color. |
open static Float |
Returns the relative luminance of a color. |
open static Float |
Returns the relative luminance of a color. |
open Long |
pack() Packs this color into a color long. |
open static Long |
Packs the sRGB color defined by the specified red, green and blue component values into an RGBA color long in the sRGB color space. |
open static Long |
Packs the sRGB color defined by the specified red, green, blue and alpha component values into an RGBA color long in the sRGB color space. |
open static Long |
Packs the 3 component color defined by the specified red, green, blue and alpha component values into a color long in the specified color space. |
open static Long |
Converts the specified ARGB color int to an RGBA color long in the sRGB color space. |
open static Int |
parseColor(colorString: String!) Parse the color string, and return the corresponding color-int. |
open Float |
red() Returns the value of the red component in the range defined by this color's color space (see |
open static Int |
Return the red component of a color int. |
open static Float |
Returns the red component encoded in the specified color long. |
open static Int |
Return a color-int from red, green, blue float components in the range \([0..1]\). |
open static Int |
Return a color-int from red, green, blue components. |
open Int |
toArgb() Converts this color to an ARGB color int. |
open static Int |
Converts the specified color long to an ARGB color int. |
open String |
toString() Returns a string representation of the object. |
open static Color |
Creates a new opaque |
open static Color |
Creates a new |
open static Color |
Creates a new |
open static Color |
valueOf(components: FloatArray, colorSpace: ColorSpace) Creates a new |
open static Color |
Creates a new |
open static Color |
Creates a new |
Constants
Public constructors
Color
Color()
Creates a new color instance set to opaque black in the sRGB
color space.
Public methods
HSVToColor
open static fun HSVToColor(hsv: FloatArray!): Int
Convert HSV components to an ARGB color. Alpha set to 0xFF.
hsv[0]
is Hue \([0..360[\)hsv[1]
is Saturation \([0...1]\)hsv[2]
is Value \([0...1]\)
Parameters | |
---|---|
hsv |
FloatArray!: 3 element array which holds the input HSV components. |
Return | |
---|---|
Int |
the resulting argb color |
HSVToColor
open static fun HSVToColor(
alpha: Int,
hsv: FloatArray!
): Int
Convert HSV components to an ARGB color. The alpha component is passed through unchanged.
hsv[0]
is Hue \([0..360[\)hsv[1]
is Saturation \([0...1]\)hsv[2]
is Value \([0...1]\)
Parameters | |
---|---|
alpha |
Int: the alpha component of the returned argb color. Value is between 0 and 255 inclusive |
hsv |
FloatArray!: 3 element array which holds the input HSV components. |
Return | |
---|---|
Int |
the resulting argb color |
RGBToHSV
open static fun RGBToHSV(
red: Int,
green: Int,
blue: Int,
hsv: FloatArray!
): Unit
Convert RGB components to HSV.
hsv[0]
is Hue \([0..360[\)hsv[1]
is Saturation \([0...1]\)hsv[2]
is Value \([0...1]\)
Parameters | |
---|---|
red |
Int: red component value \([0..255]\) Value is between 0 and 255 inclusive |
green |
Int: green component value \([0..255]\) Value is between 0 and 255 inclusive |
blue |
Int: blue component value \([0..255]\) Value is between 0 and 255 inclusive |
hsv |
FloatArray!: 3 element array which holds the resulting HSV components. |
alpha
open fun alpha(): Float
Returns the value of the alpha component in the range \([0..1]\). Calling this method is equivalent to getComponent(getComponentCount() - 1)
.
alpha
open static fun alpha(color: Int): Int
Return the alpha component of a color int. This is the same as saying color >>> 24
Return | |
---|---|
Int |
Value is between 0 and 255 inclusive |
alpha
open static fun alpha(color: Long): Float
Returns the alpha component encoded in the specified color long. The returned value is always in the range \([0..1]\).
Parameters | |
---|---|
color |
Long: The color long whose alpha channel to extract |
Return | |
---|---|
Float |
A float value in the range \([0..1]\) |
argb
open static fun argb(
alpha: Float,
red: Float,
green: Float,
blue: Float
): Int
Return a color-int from alpha, red, green, blue float components in the range \([0..1]\). If the components are out of range, the returned color is undefined.
Parameters | |
---|---|
alpha |
Float: Alpha component \([0..1]\) of the color |
red |
Float: Red component \([0..1]\) of the color |
green |
Float: Green component \([0..1]\) of the color |
blue |
Float: Blue component \([0..1]\) of the color |
argb
open static fun argb(
alpha: Int,
red: Int,
green: Int,
blue: Int
): Int
Return a color-int from alpha, red, green, blue components. These component values should be \([0..255]\), but there is no range check performed, so if they are out of range, the returned color is undefined.
Parameters | |
---|---|
alpha |
Int: Alpha component \([0..255]\) of the color Value is between 0 and 255 inclusive |
red |
Int: Red component \([0..255]\) of the color Value is between 0 and 255 inclusive |
green |
Int: Green component \([0..255]\) of the color Value is between 0 and 255 inclusive |
blue |
Int: Blue component \([0..255]\) of the color Value is between 0 and 255 inclusive |
blue
open fun blue(): Float
Returns the value of the blue component in the range defined by this color's color space (see ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
).
If this color's color model is not RGB
, calling this method is equivalent to getComponent(2)
.
See Also
blue
open static fun blue(color: Int): Int
Return the blue component of a color int. This is the same as saying color & 0xFF
Return | |
---|---|
Int |
Value is between 0 and 255 inclusive |
blue
open static fun blue(color: Long): Float
Returns the blue component encoded in the specified color long. The range of the returned value depends on the color space associated with the specified color. The color space can be queried by calling colorSpace(long)
.
Parameters | |
---|---|
color |
Long: The color long whose blue channel to extract |
Return | |
---|---|
Float |
A float value with a range defined by the specified color's color space |
colorSpace
open static fun colorSpace(color: Long): ColorSpace
Returns the color space encoded in the specified color long.
Parameters | |
---|---|
color |
Long: The color long whose color space to extract |
Return | |
---|---|
ColorSpace |
A non-null color space instance |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the encoded color space is invalid or unknown |
See Also
colorToHSV
open static fun colorToHSV(
color: Int,
hsv: FloatArray!
): Unit
Convert the ARGB color to its HSV components.
hsv[0]
is Hue \([0..360[\)hsv[1]
is Saturation \([0...1]\)hsv[2]
is Value \([0...1]\)
Parameters | |
---|---|
color |
Int: the argb color to convert. The alpha component is ignored. |
hsv |
FloatArray!: 3 element array which holds the resulting HSV components. |
convert
open fun convert(colorSpace: ColorSpace): Color
Converts this color from its color space to the specified color space. The conversion is done using the default rendering intent as specified by ColorSpace.connect(ColorSpace, ColorSpace)
.
Parameters | |
---|---|
colorSpace |
ColorSpace: The destination color space, cannot be null |
Return | |
---|---|
Color |
A non-null color instance in the specified color space |
convert
open static fun convert(
r: Float,
g: Float,
b: Float,
a: Float,
source: ColorSpace,
destination: ColorSpace
): Long
Converts the specified 3 component color from the source color space to the destination color space. The resulting color is returned as a color long. See the documentation of this class for a description of the color long format.
When converting multiple colors in a row, it is recommended to use convert(float,float,float,float,android.graphics.ColorSpace.Connector)
instead to avoid the creation of a ColorSpace.Connector
on every invocation.
The red, green and blue components must be in the range defined by the specified color space. See ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
.
Parameters | |
---|---|
r |
Float: The red component of the color to convert |
g |
Float: The green component of the color to convert |
b |
Float: The blue component of the color to convert |
a |
Float: The alpha component of the color to convert, in \([0..1]\) |
source |
ColorSpace: The source color space, cannot be null |
destination |
ColorSpace: The destination color space, cannot be null |
Return | |
---|---|
Long |
A color long in the destination color space |
convert
open static fun convert(
r: Float,
g: Float,
b: Float,
a: Float,
connector: ColorSpace.Connector
): Long
Converts the specified 3 component color from a color space to another using the specified color space connector
. The resulting color is returned as a color long. See the documentation of this class for a description of the color long format.
When converting several colors in a row, this method is preferable to convert(float,float,float,float,android.graphics.ColorSpace,android.graphics.ColorSpace)
as it prevents a new connector from being created on every invocation.
The red, green and blue components must be in the range defined by the source color space of the connector. See ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
.
Parameters | |
---|---|
r |
Float: The red component of the color to convert |
g |
Float: The green component of the color to convert |
b |
Float: The blue component of the color to convert |
a |
Float: The alpha component of the color to convert, in \([0..1]\) |
connector |
ColorSpace.Connector: A color space connector, cannot be null |
Return | |
---|---|
Long |
A color long in the destination color space of the connector |
convert
open static fun convert(
color: Int,
colorSpace: ColorSpace
): Long
Converts the specified ARGB color int from the sRGB
color space into the specified destination color space. The resulting color is returned as a color long. See the documentation of this class for a description of the color long format.
Parameters | |
---|---|
color |
Int: The sRGB color int to convert |
colorSpace |
ColorSpace: The destination color space This value cannot be null . |
Return | |
---|---|
Long |
A color long in the destination color space |
convert
open static fun convert(
color: Long,
colorSpace: ColorSpace
): Long
Converts the specified color long from its color space into the specified destination color space. The resulting color is returned as a color long. See the documentation of this class for a description of the color long format.
When converting several colors in a row, it is recommended to use convert(long,android.graphics.ColorSpace.Connector)
instead to avoid the creation of a ColorSpace.Connector
on every invocation.
Parameters | |
---|---|
color |
Long: The color long to convert |
colorSpace |
ColorSpace: The destination color space This value cannot be null . |
Return | |
---|---|
Long |
A color long in the destination color space |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the encoded color space is invalid or unknown |
convert
open static fun convert(
color: Long,
connector: ColorSpace.Connector
): Long
Converts the specified color long from a color space to another using the specified color space connector
. The resulting color is returned as a color long. See the documentation of this class for a description of the color long format.
When converting several colors in a row, this method is preferable to convert(long,android.graphics.ColorSpace)
as it prevents a new connector from being created on every invocation.
The connector's source color space should match the color long's color space.
Parameters | |
---|---|
color |
Long: The color long to convert |
connector |
ColorSpace.Connector: A color space connector, cannot be null |
Return | |
---|---|
Long |
A color long in the destination color space of the connector |
equals
open fun equals(other: Any?): Boolean
Parameters | |
---|---|
obj |
the reference object with which to compare. |
Return | |
---|---|
Boolean |
true if this object is the same as the obj argument; false otherwise. |
getColorSpace
open fun getColorSpace(): ColorSpace
Returns this color's color space.
Return | |
---|---|
ColorSpace |
A non-null instance of ColorSpace |
getComponent
open fun getComponent(component: Int): Float
Returns the value of the specified component in the range defined by this color's color space (see ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
).
If the requested component index is getComponentCount()
, this method returns the alpha component, always in the range \([0..1]\).
Parameters | |
---|---|
component |
Int: Value is between 0 and 4 inclusive |
Exceptions | |
---|---|
java.lang.ArrayIndexOutOfBoundsException |
If the specified component index is < 0 or >= getComponentCount() |
See Also
getComponentCount
open fun getComponentCount(): Int
Returns the number of components that form a color value according to this color space's color model, plus one extra component for alpha.
Return | |
---|---|
Int |
The integer 4 or 5 Value is between 4 and 5 inclusive |
getComponents
open fun getComponents(): FloatArray
Returns this color's components as a new array. The last element of the array is always the alpha component.
Return | |
---|---|
FloatArray |
A new, non-null array whose size is equal to getComponentCount() |
See Also
getComponents
open fun getComponents(components: FloatArray?): FloatArray
Copies this color's components in the supplied array. The last element of the array is always the alpha component.
Parameters | |
---|---|
components |
FloatArray?: An array of floats whose size must be at least getComponentCount() , can be null |
Return | |
---|---|
FloatArray |
The array passed as a parameter if not null, or a new array of length getComponentCount() |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the specified array's length is less than getComponentCount() |
See Also
getModel
open fun getModel(): ColorSpace.Model!
Returns the color model of this color.
Return | |
---|---|
ColorSpace.Model! |
A non-null ColorSpace.Model |
green
open fun green(): Float
Returns the value of the green component in the range defined by this color's color space (see ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
).
If this color's color model is not RGB
, calling this method is equivalent to getComponent(1)
.
See Also
green
open static fun green(color: Int): Int
Return the green component of a color int. This is the same as saying (color >> 8) & 0xFF
Return | |
---|---|
Int |
Value is between 0 and 255 inclusive |
green
open static fun green(color: Long): Float
Returns the green component encoded in the specified color long. The range of the returned value depends on the color space associated with the specified color. The color space can be queried by calling colorSpace(long)
.
Parameters | |
---|---|
color |
Long: The color long whose green channel to extract |
Return | |
---|---|
Float |
A float value with a range defined by the specified color's color space |
hashCode
open fun hashCode(): Int
Return | |
---|---|
Int |
a hash code value for this object. |
isInColorSpace
open static fun isInColorSpace(
color: Long,
colorSpace: ColorSpace
): Boolean
Indicates whether the specified color is in the specified color space.
Parameters | |
---|---|
color |
Long: The color to test |
colorSpace |
ColorSpace: The color space to test against This value cannot be null . |
Return | |
---|---|
Boolean |
True if the color is in the specified color space, false otherwise |
See Also
isSrgb
open fun isSrgb(): Boolean
Indicates whether this color is in the sRGB
color space.
Return | |
---|---|
Boolean |
True if this color is in the sRGB color space, false otherwise |
See Also
isSrgb
open static fun isSrgb(color: Long): Boolean
Indicates whether the specified color is in the sRGB
color space.
Parameters | |
---|---|
color |
Long: The color to test |
Return | |
---|---|
Boolean |
True if the color is in the sRGB color space, false otherwise |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the encoded color space is invalid or unknown |
isWideGamut
open fun isWideGamut(): Boolean
Indicates whether this color color is in a wide-gamut color space. See ColorSpace.isWideGamut()
for a definition of a wide-gamut color space.
Return | |
---|---|
Boolean |
True if this color is in a wide-gamut color space, false otherwise |
isWideGamut
open static fun isWideGamut(color: Long): Boolean
Indicates whether the specified color is in a wide-gamut color space. See ColorSpace.isWideGamut()
for a definition of a wide-gamut color space.
Parameters | |
---|---|
color |
Long: The color to test |
Return | |
---|---|
Boolean |
True if the color is in a wide-gamut color space, false otherwise |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the encoded color space is invalid or unknown |
luminance
open fun luminance(): Float
Returns the relative luminance of this color.
Based on the formula for relative luminance defined in WCAG 2.0, W3C Recommendation 11 December 2008.
Return | |
---|---|
Float |
A value between 0 (darkest black) and 1 (lightest white) |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the this color's color space does not use the RGB color model |
luminance
open static fun luminance(color: Int): Float
Returns the relative luminance of a color.
Assumes sRGB encoding. Based on the formula for relative luminance defined in WCAG 2.0, W3C Recommendation 11 December 2008.
Return | |
---|---|
Float |
a value between 0 (darkest black) and 1 (lightest white) |
luminance
open static fun luminance(color: Long): Float
Returns the relative luminance of a color.
Based on the formula for relative luminance defined in WCAG 2.0, W3C Recommendation 11 December 2008.
Return | |
---|---|
Float |
A value between 0 (darkest black) and 1 (lightest white) |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the specified color's color space is unknown or does not use the RGB color model |
pack
open fun pack(): Long
Packs this color into a color long. See the documentation of this class for a description of the color long format.
Return | |
---|---|
Long |
A color long |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If this color's color space has the id ColorSpace.MIN_ID or if this color has more than 4 components |
pack
open static fun pack(
red: Float,
green: Float,
blue: Float
): Long
Packs the sRGB color defined by the specified red, green and blue component values into an RGBA color long in the sRGB color space. The alpha component is set to 1.0. See the documentation of this class for a description of the color long format.
Parameters | |
---|---|
red |
Float: The red component of the sRGB color to create, in \([0..1]\) |
green |
Float: The green component of the sRGB color to create, in \([0..1]\) |
blue |
Float: The blue component of the sRGB color to create, in \([0..1]\) |
Return | |
---|---|
Long |
A color long |
pack
open static fun pack(
red: Float,
green: Float,
blue: Float,
alpha: Float
): Long
Packs the sRGB color defined by the specified red, green, blue and alpha component values into an RGBA color long in the sRGB color space. See the documentation of this class for a description of the color long format.
Parameters | |
---|---|
red |
Float: The red component of the sRGB color to create, in \([0..1]\) |
green |
Float: The green component of the sRGB color to create, in \([0..1]\) |
blue |
Float: The blue component of the sRGB color to create, in \([0..1]\) |
alpha |
Float: The alpha component of the sRGB color to create, in \([0..1]\) |
Return | |
---|---|
Long |
A color long |
pack
open static fun pack(
red: Float,
green: Float,
blue: Float,
alpha: Float,
colorSpace: ColorSpace
): Long
Packs the 3 component color defined by the specified red, green, blue and alpha component values into a color long in the specified color space. See the documentation of this class for a description of the color long format.
The red, green and blue components must be in the range defined by the specified color space. See ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
.
Parameters | |
---|---|
red |
Float: The red component of the color to create |
green |
Float: The green component of the color to create |
blue |
Float: The blue component of the color to create |
alpha |
Float: The alpha component of the color to create, in \([0..1]\) |
colorSpace |
ColorSpace: This value cannot be null . |
Return | |
---|---|
Long |
A color long |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the color space's id is ColorSpace.MIN_ID or if the color space's color model has more than 3 components |
pack
open static fun pack(color: Int): Long
Converts the specified ARGB color int to an RGBA color long in the sRGB color space. See the documentation of this class for a description of the color long format.
Parameters | |
---|---|
color |
Int: The ARGB color int to convert to an RGBA color long in sRGB |
Return | |
---|---|
Long |
A color long |
parseColor
open static fun parseColor(colorString: String!): Int
Parse the color string, and return the corresponding color-int. If the string cannot be parsed, throws an IllegalArgumentException exception. Supported formats are:
RRGGBB
AARRGGBB
The following names are also accepted: red
, blue
, green
, black
, white
, gray
, cyan
, magenta
, yellow
, lightgray
, darkgray
, grey
, lightgrey
, darkgrey
, aqua
, fuchsia
, lime
, maroon
, navy
, olive
, purple
, silver
, and teal
.
red
open fun red(): Float
Returns the value of the red component in the range defined by this color's color space (see ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
).
If this color's color model is not RGB
, calling this method is equivalent to getComponent(0)
.
See Also
red
open static fun red(color: Int): Int
Return the red component of a color int. This is the same as saying (color >> 16) & 0xFF
Return | |
---|---|
Int |
Value is between 0 and 255 inclusive |
red
open static fun red(color: Long): Float
Returns the red component encoded in the specified color long. The range of the returned value depends on the color space associated with the specified color. The color space can be queried by calling colorSpace(long)
.
Parameters | |
---|---|
color |
Long: The color long whose red channel to extract |
Return | |
---|---|
Float |
A float value with a range defined by the specified color's color space |
rgb
open static fun rgb(
red: Float,
green: Float,
blue: Float
): Int
Return a color-int from red, green, blue float components in the range \([0..1]\). The alpha component is implicitly 1.0 (fully opaque). If the components are out of range, the returned color is undefined.
Parameters | |
---|---|
red |
Float: Red component \([0..1]\) of the color |
green |
Float: Green component \([0..1]\) of the color |
blue |
Float: Blue component \([0..1]\) of the color |
rgb
open static fun rgb(
red: Int,
green: Int,
blue: Int
): Int
Return a color-int from red, green, blue components. The alpha component is implicitly 255 (fully opaque). These component values should be \([0..255]\), but there is no range check performed, so if they are out of range, the returned color is undefined.
Parameters | |
---|---|
red |
Int: Red component \([0..255]\) of the color Value is between 0 and 255 inclusive |
green |
Int: Green component \([0..255]\) of the color Value is between 0 and 255 inclusive |
blue |
Int: Blue component \([0..255]\) of the color Value is between 0 and 255 inclusive |
toArgb
open fun toArgb(): Int
Converts this color to an ARGB color int. A color int is always in the sRGB
color space. This implies a color space conversion is applied if needed.
Return | |
---|---|
Int |
An ARGB color in the sRGB color space |
toArgb
open static fun toArgb(color: Long): Int
Converts the specified color long to an ARGB color int. A color int is always in the sRGB
color space. This implies a color space conversion is applied if needed.
Return | |
---|---|
Int |
An ARGB color in the sRGB color space |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the encoded color space is invalid or unknown |
toString
open fun toString(): String
Returns a string representation of the object. This method returns a string equal to the value of:
"Color(" + r + ", " + g + ", " + b + ", " + a + ", " + getColorSpace().getName + ')'
For instance, the string representation of opaque black in the sRGB color space is equal to the following value:
Color(0.0, 0.0, 0.0, 1.0, sRGB IEC61966-2.1)
Return | |
---|---|
String |
A non-null string representation of the object |
valueOf
open static fun valueOf(
r: Float,
g: Float,
b: Float
): Color
Creates a new opaque Color
in the sRGB
color space with the specified red, green and blue component values. The component values must be in the range \([0..1]\).
Parameters | |
---|---|
r |
Float: The red component of the opaque sRGB color to create, in \([0..1]\) |
g |
Float: The green component of the opaque sRGB color to create, in \([0..1]\) |
b |
Float: The blue component of the opaque sRGB color to create, in \([0..1]\) |
Return | |
---|---|
Color |
A non-null instance of Color |
valueOf
open static fun valueOf(
r: Float,
g: Float,
b: Float,
a: Float
): Color
Creates a new Color
in the sRGB
color space with the specified red, green, blue and alpha component values. The component values must be in the range \([0..1]\).
Parameters | |
---|---|
r |
Float: The red component of the sRGB color to create, in \([0..1]\) |
g |
Float: The green component of the sRGB color to create, in \([0..1]\) |
b |
Float: The blue component of the sRGB color to create, in \([0..1]\) |
a |
Float: The alpha component of the sRGB color to create, in \([0..1]\) |
Return | |
---|---|
Color |
A non-null instance of Color |
valueOf
open static fun valueOf(
r: Float,
g: Float,
b: Float,
a: Float,
colorSpace: ColorSpace
): Color
Creates a new Color
in the specified color space with the specified red, green, blue and alpha component values. The range of the components is defined by ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
. The values passed to this method must be in the proper range.
Parameters | |
---|---|
r |
Float: The red component of the color to create |
g |
Float: The green component of the color to create |
b |
Float: The blue component of the color to create |
a |
Float: The alpha component of the color to create, in \([0..1]\) |
colorSpace |
ColorSpace: The color space of the color to create This value cannot be null . |
Return | |
---|---|
Color |
A non-null instance of Color |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the specified color space uses a color model with more than 3 components |
valueOf
open static fun valueOf(
components: FloatArray,
colorSpace: ColorSpace
): Color
Creates a new Color
in the specified color space with the specified component values. The range of the components is defined by ColorSpace.getMinValue(int)
and ColorSpace.getMaxValue(int)
. The values passed to this method must be in the proper range. The alpha component is always in the range \([0..1]\).
The length of the array of components must be at least
. The component at index ColorSpace.getComponentCount()
+ 1ColorSpace.getComponentCount()
is always alpha.
Parameters | |
---|---|
components |
FloatArray: The components of the color to create, with alpha as the last component This value cannot be null . |
colorSpace |
ColorSpace: The color space of the color to create This value cannot be null . |
Return | |
---|---|
Color |
A non-null instance of Color |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the array of components is smaller than required by the color space |
valueOf
open static fun valueOf(color: Int): Color
Creates a new Color
instance from an ARGB color int. The resulting color is in the sRGB
color space.
Parameters | |
---|---|
color |
Int: The ARGB color int to create a Color from |
Return | |
---|---|
Color |
A non-null instance of Color |
valueOf
open static fun valueOf(color: Long): Color
Creates a new Color
instance from a color long. The resulting color is in the same color space as the specified color long.
Parameters | |
---|---|
color |
Long: The color long to create a Color from |
Return | |
---|---|
Color |
A non-null instance of Color |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
If the encoded color space is invalid or unknown |