Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/hardware/lights/ColorSequence#nestedclasses) \| [Constants](https://developer.android.com/reference/android/hardware/lights/ColorSequence#constants) \| [Inherited Constants](https://developer.android.com/reference/android/hardware/lights/ColorSequence#inhconstants) \| [Fields](https://developer.android.com/reference/android/hardware/lights/ColorSequence#lfields) \| [Methods](https://developer.android.com/reference/android/hardware/lights/ColorSequence#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/hardware/lights/ColorSequence#inhmethods)

# ColorSequence

*** ** * ** ***


`
public

final

class
ColorSequence
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


implements

https://developer.android.com/reference/android/os/Parcelable


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.hardware.lights.ColorSequence |

<br />

*** ** * ** ***

Models a sequence of colors and their relative timing to create a light effect.


The control points in this object represent specific points in time when the light will be set
to the specified color. Control points can be arbitrarily distant in time and the light will be
interpolated each frame to smoothly transition between control points.


Control points have three main components:

- color: the target color for the light.
- delay: how long the light takes to transition from color\[n-1\] to color\[n\], expressed in milliseconds relative to the last control point (or permanent state if the light is not playing an effect).
- interpolation mode: the interpolation algorithm to use to transition between colors. It is important to note that the interpolation is done per color channel on every frame (see `https://developer.android.com/reference/android/hardware/lights/Light#getMinUpdatePeriodMillis()`).

<br />

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/hardware/lights/ColorSequence.Builder` Builder for `https://developer.android.com/reference/android/hardware/lights/ColorSequence` objects. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/hardware/lights/ColorSequence#INTERPOLATION_MODE_LINEAR` Linear interpolation between control points. |
| `int` | `https://developer.android.com/reference/android/hardware/lights/ColorSequence#INTERPOLATION_MODE_NONE` No interpolation between control points. |

| ### Inherited constants |
|---|
| From interface `https://developer.android.com/reference/android/os/Parcelable` |---|---| | `int` | `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor. | | `int` | `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`". | |

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/hardware/lights/ColorSequence>` | `https://developer.android.com/reference/android/hardware/lights/ColorSequence#CREATOR` Implements the Parcelable interface |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#describeContents()() ` Implements the Parcelable interface |
| ` int[]` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#getColors()() ` Returns the sequence of colors defined in this light effect. |
| ` long[]` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#getDelaysMillis()() ` Returns the sequence of delays configured for the effect. |
| ` long` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#getDurationMillis()() ` Calculates the estimated duration of a single iteration of the light effect. |
| ` int` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#getInterpolationMode()() ` Returns the type of interpolation that will be used to ramp the color to the final value. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#toString()() ` Returns a string representation of the object. |
| ` void` | ` https://developer.android.com/reference/android/hardware/lights/ColorSequence#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Implements the Parcelable interface |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/android/os/Parcelable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. | | ` abstract void` | ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. | ||

## Constants

### INTERPOLATION_MODE_LINEAR

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERPOLATION_MODE_LINEAR
```

Linear interpolation between control points.


With this interpolation mode, the transition from `color[n-1]` to `color[n]`
happens linearly over `delayMillis[n]` milliseconds, with color updates every frame.


Each color channel is interpolated independently.

<br />

Constant Value:

1
(0x00000001)


### INTERPOLATION_MODE_NONE

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int INTERPOLATION_MODE_NONE
```

No interpolation between control points.


With this interpolation mode, `color[n-1]` will be held for the corresponding duration
specified in delayMillis. After that, `color[n]` will be applied without any
intermediate steps.

<br />

Constant Value:

0
(0x00000000)


## Fields

### CREATOR

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Creator<ColorSequence> CREATOR
```

Implements the Parcelable interface

<br />

## Public methods

### describeContents

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int describeContents ()
```

Implements the Parcelable interface

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### getColors

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int[] getColors ()
```

Returns the sequence of colors defined in this light effect.

<br />

| Returns ||
|---|---|
| `int[]` | Array of colors that will be played for this effect. This value cannot be `null`. <br /> |

### getDelaysMillis

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long[] getDelaysMillis ()
```

Returns the sequence of delays configured for the effect.


Value is a non-negative duration in milliseconds.

<br />

| Returns ||
|---|---|
| `long[]` | Array of delays configured for this effect. This value cannot be `null`. Value is a non-negative duration in milliseconds. <br /> |

### getDurationMillis

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getDurationMillis ()
```

Calculates the estimated duration of a single iteration of the light effect.


Value is a non-negative duration in milliseconds.

<br />

| Returns ||
|---|---|
| `long` | the estimated duration of one iteration of this light effect in number of frames. Value is a non-negative duration in milliseconds. <br /> |

### getInterpolationMode

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getInterpolationMode ()
```

Returns the type of interpolation that will be used to ramp the color to the final value.

<br />

| Returns ||
|---|---|
| `int` | Interpolation mode to be used in the animation. Value is one of the following: - `https://developer.android.com/reference/android/hardware/lights/ColorSequence#INTERPOLATION_MODE_NONE` - `https://developer.android.com/reference/android/hardware/lights/ColorSequence#INTERPOLATION_MODE_LINEAR` |

### toString

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |

### writeToParcel

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void writeToParcel (Parcel dest, 
                int flags)
```

Implements the Parcelable interface

<br />

| Parameters ||
|---|---|
| `dest` | `Parcel`: This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |