CarColor

@CarProtocol
public final class CarColor


Represents a color to be used in a car app.

The host chooses the dark or light variant of the color when displaying the user interface, depending where the color is used, to ensure the proper contrast ratio is maintained. For example, the dark variant when may be used as the background of a view with brighter text on it, and the light variant for text on a dark background.

Colors provided by the app should meet the contrast requirements defined by the host, and documented by the app quality guidelines.

Standard colors A set of standard CarColor instances (for example, BLUE) is available in this class. It is recommended to use these standard colors whenever possible as they are guaranteed to adhere to the contrast requirements. Primary and secondary colors The app can define two additional CarColors in its manifest metadata, through the carColorPrimary, carColorPrimaryDark, carColorSecondary, and carColorSecondaryDark theme attributes, by declaring them in a theme and referencing the theme from the androidx.car.app.theme metadata. Both the light and dark variants must be declared for the primary and secondary colors, otherwise default variants will be used. Wherever primary and secondary colors are used by the app, the host may use a default color instead if the colors do not pass the contrast requirements.

In AndroidManifest.xml, under the application element corresponding to the car app:

<meta-data
  android:name="androidx.car.app.theme"
  android:resource="@style/CarAppTheme"/>
The CarAppTheme style is defined as any other themes in a resource file:
<resources>
  <style name="CarAppTheme">
    <item name="carColorPrimary">@color/my_primary_car_color</item>
    <item name="carColorPrimaryDark">@color/my_primary_dark_car_color</item>
    <item name="carColorSecondary">@color/my_secondary_car_color</item>
    <item name="carColorSecondaryDark">@color/my_secondary_cark_car_color</item>
  </style>
</resources>
Custom Colors Besides the primary and secondary colors, custom colors can be created at runtime with createCustom. Wherever custom colors are used by the app, the host may use a default color instead if the custom color does not pass the contrast requirements.

Summary

Constants

static final @NonNull CarColor

A standard blue color.

static final @NonNull CarColor

Indicates that a default color should be used.

static final @NonNull CarColor

A standard green color.

static final @NonNull CarColor

Indicates that the app primary color and its dark version should be used, as declared in the app manifest through the carColorPrimary and carColorPrimaryDark theme attributes.

static final @NonNull CarColor

A standard red color.

static final @NonNull CarColor

Indicates that the app secondary color and its dark version should be used, as declared in the app manifest through the carColorSecondary and carColorSecondaryDark theme attributes.

static final int

The standard blue color.

static final int

A custom, non-standard, app-defined color.

static final int

A default color, chosen by the host.

static final int

The standard green color.

static final int

The primary app color.

static final int

The standard red color.

static final int

The secondary app color.

static final int

The standard yellow color.

static final @NonNull CarColor

A standard yellow color.

Public methods

static @NonNull CarColor
createCustom(@ColorInt int color, @ColorInt int colorDark)

Returns an instance of CarColor containing a non-standard color.

boolean
@ColorInt int

Returns a packed color int for the light variant of the color, used when the type is TYPE_CUSTOM.

@ColorInt int

Returns a packed color int for the dark variant of the color, used when the type is TYPE_CUSTOM.

int

Returns the type of color for this instance.

int
String

Constants

BLUE

Added in 1.0.0
public static final @NonNull CarColor BLUE

A standard blue color.

DEFAULT

Added in 1.0.0
public static final @NonNull CarColor DEFAULT

Indicates that a default color should be used.

This can be used for example to tell the host that the app has no preference for the tint of an icon, and it should use whatever default it finds appropriate.

GREEN

Added in 1.0.0
public static final @NonNull CarColor GREEN

A standard green color.

PRIMARY

Added in 1.0.0
public static final @NonNull CarColor PRIMARY

Indicates that the app primary color and its dark version should be used, as declared in the app manifest through the carColorPrimary and carColorPrimaryDark theme attributes.

RED

Added in 1.0.0
public static final @NonNull CarColor RED

A standard red color.

SECONDARY

Added in 1.0.0
public static final @NonNull CarColor SECONDARY

Indicates that the app secondary color and its dark version should be used, as declared in the app manifest through the carColorSecondary and carColorSecondaryDark theme attributes.

TYPE_BLUE

Added in 1.0.0
public static final int TYPE_BLUE = 6

The standard blue color.

See also
BLUE

TYPE_CUSTOM

Added in 1.0.0
public static final int TYPE_CUSTOM = 0

A custom, non-standard, app-defined color.

TYPE_DEFAULT

Added in 1.0.0
public static final int TYPE_DEFAULT = 1

A default color, chosen by the host.

See also
DEFAULT

TYPE_GREEN

Added in 1.0.0
public static final int TYPE_GREEN = 5

The standard green color.

See also
GREEN

TYPE_PRIMARY

Added in 1.0.0
public static final int TYPE_PRIMARY = 2

The primary app color.

See also
PRIMARY

TYPE_RED

Added in 1.0.0
public static final int TYPE_RED = 4

The standard red color.

See also
RED

TYPE_SECONDARY

Added in 1.0.0
public static final int TYPE_SECONDARY = 3

The secondary app color.

See also
SECONDARY

TYPE_YELLOW

Added in 1.0.0
public static final int TYPE_YELLOW = 7

The standard yellow color.

See also
YELLOW

YELLOW

Added in 1.0.0
public static final @NonNull CarColor YELLOW

A standard yellow color.

Public methods

createCustom

Added in 1.0.0
public static @NonNull CarColor createCustom(@ColorInt int color, @ColorInt int colorDark)

Returns an instance of CarColor containing a non-standard color.

See the top-level documentation of CarColor for details about how the host determines which variant is used.

equals

Added in 1.4.0-rc02
public boolean equals(@Nullable Object other)

getColor

Added in 1.0.0
public @ColorInt int getColor()

Returns a packed color int for the light variant of the color, used when the type is TYPE_CUSTOM.

getColorDark

Added in 1.0.0
public @ColorInt int getColorDark()

Returns a packed color int for the dark variant of the color, used when the type is TYPE_CUSTOM.

getType

Added in 1.0.0
public int getType()

Returns the type of color for this instance.

hashCode

Added in 1.4.0-rc02
public int hashCode()

toString

Added in 1.4.0-rc02
public String toString()