ComplicationDrawable

public class ComplicationDrawable
extends Drawable implements Parcelable

java.lang.Object
   ↳ android.graphics.drawable.Drawable
     ↳ android.support.wearable.complications.rendering.ComplicationDrawable


This class is deprecated.
use the Jetpack Wear Watch Face libraries instead.

A styleable drawable object that draws complications. You can create a ComplicationDrawable from XML inflation or by using one of the constructor methods.

Constructing a ComplicationDrawable

To construct a ComplicationDrawable programmatically, use the ComplicationDrawable(Context) constructor. Afterwards, styling attributes you want to modify can be set via set methods.

 public void onCreate(SurfaceHolder holder) {
   ...
   ComplicationDrawable complicationDrawable = new ComplicationDrawable(WatchFaceService.this);
   complicationDrawable.setBackgroundColorActive(backgroundColor);
   complicationDrawable.setTextColorActive(textColor);
   ...
 }

Constructing a ComplicationDrawable from XML

Constructing a ComplicationDrawable from an XML file makes it easier to modify multiple styling attributes at once without calling any set methods. You may also use different XML files to switch between different styles your watch face supports.

To construct a ComplicationDrawable from a drawable XML file, you may create an XML file in your project's res/drawable folder. A ComplicationDrawable with red text and white title in active mode, and white text and white title in ambient mode would look like this:

 <?xml version="1.0" encoding="utf-8"?>
 <android.support.wearable.complications.rendering.ComplicationDrawable
   xmlns:app="http://schemas.android.com/apk/res-auto"
   app:textColor="#FFFF0000"
   app:titleColor="#FFFFFFFF">
   <ambient
     app:textColor="#FFFFFFFF" />
 </android.support.wearable.complications.rendering.ComplicationDrawable>

A top-level drawable tag with the class attribute may also be used to construct a ComplicationDrawable from an XML file:

 <?xml version="1.0" encoding="utf-8"?>
 <drawable
   class="android.support.wearable.complications.rendering.ComplicationDrawable"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   app:textColor="#FFFF0000"
   app:titleColor="#FFFFFFFF">
   <ambient
     app:textColor="#FFFFFFFF" />
 </drawable>

To inflate a ComplicationDrawable from XML file, use the Context.getDrawable(int) method. After loading the ComplicationDrawable, you should call setContext(Context) right after. ComplicationDrawable needs access to the current context in order to style and draw the complication.

 public void onCreate(SurfaceHolder holder) {
   ...
   ComplicationDrawable complicationDrawable = (ComplicationDrawable)
       getDrawable(R.drawable.complication);
   complicationDrawable.setContext(WatchFaceService.this);
   ...
 }

Syntax:

 <?xml version="1.0" encoding="utf-8"?>
 <android.support.wearable.complications.rendering.ComplicationDrawable
   xmlns:app="http://schemas.android.com/apk/res-auto"
   app:backgroundColor="color"
   app:backgroundDrawable="drawable"
   app:borderColor="color"
   app:borderDashGap="dimension"
   app:borderDashWidth="dimension"
   app:borderRadius="dimension"
   app:borderStyle="none|solid|dashed"
   app:borderWidth="dimension"
   app:highlightColor="color"
   app:iconColor="color"
   app:rangedValuePrimaryColor="color"
   app:rangedValueProgressHidden="boolean"
   app:rangedValueRingWidth="dimension"
   app:rangedValueSecondaryColor="color"
   app:textColor="color"
   app:textSize="dimension"
   app:textTypeface="string"
   app:titleColor="color"
   app:titleSize="dimension"
   app:titleTypeface="string">
   <ambient
     app:backgroundColor="color"
     app:backgroundDrawable="drawable"
     app:borderColor="color"
     app:borderDashGap="dimension"
     app:borderDashWidth="dimension"
     app:borderRadius="dimension"
     app:borderStyle="none|solid|dashed"
     app:borderWidth="dimension"
     app:highlightColor="color"
     app:iconColor="color"
     app:rangedValuePrimaryColor="color"
     app:rangedValueRingWidth="dimension"
     app:rangedValueSecondaryColor="color"
     app:textColor="color"
     app:textSize="dimension"
     app:textTypeface="string"
     app:titleColor="color"
     app:titleSize="dimension"
     app:titleTypeface="string" />
 </android.support.wearable.complications.rendering.ComplicationDrawable>

Attributes of the top-level tag apply to both active and ambient modes while attributes of the inner ambient tag only apply to ambient mode. As an exception, top-level only rangedValueProgressHidden attribute applies to both modes, and cannot be overridden in ambient mode. To hide ranged value in only one of the active or ambient modes, you may consider setting rangedValuePrimaryColor and rangedValueSecondaryColor to Color.TRANSPARENT instead.

Updating complication data

When WatchFaceService.Engine.onComplicationDataUpdate(int, ComplicationData) is called, you should call the setComplicationData(ComplicationData) method to update ComplicationData drawn by this ComplicationDrawable.

 public void onComplicationDataUpdate(int id, ComplicationData data) {
   mComplicationDrawable.setComplicationData(data);
 }

Going in and out of ambient mode

When WatchFaceService.Engine.onAmbientModeChanged(boolean) is called, you should call the setInAmbientMode(boolean) method to update the styling of ComplicationDrawable.

 public void onAmbientModeChanged(boolean inAmbientMode) {
   mComplicationDrawable.setInAmbientMode(inAmbientMode);
 }

Updating ambient properties

When the WatchFaceService.Engine.onPropertiesChanged(android.os.Bundle) method is called, you should call the setLowBitAmbient(boolean) and setBurnInProtection(boolean) methods to update ambient properties of the ComplicationDrawable. These properties will be used to decide if antialiasing should be enabled or if images should be drawn in ambient mode.

 public void onPropertiesChanged(Bundle properties) {
   mComplicationDrawable.setLowBitAmbient(
     properties.getBoolean(PROPERTY_LOW_BIT_AMBIENT, false));
   mComplicationDrawable.setBurnInProtection(
     properties.getBoolean(PROPERTY_BURN_IN_PROTECTION, false));
 }
 

Drawing a ComplicationDrawable

Before calling the draw(Canvas, long) method in your WatchFaceService, you should call Drawable.setBounds(Rect) to update the position and size of the ComplicationDrawable within the watch face canvas. The Drawable.setBounds(Rect) method only needs to be called on the first draw or if the bounds change.

 public void onDraw(Canvas canvas, Rect bounds) {
   ...
   if (haveChanged(bounds)) {
     mComplicationDrawable.setBounds(complicationBoundsWithin(bounds));
   }
   mComplicationDrawable.draw(canvas, currentTimeMillis);
   ...
 }

Depending on the size and shape of the bounds, the layout of the complication may change. For instance, a short text complication with an icon that is drawn on square bounds would draw the icon above the short text, but a short text complication with an icon that is drawn on wide rectangular bounds might draw the icon to the left of the short text instead.

Invalidating a watch face when this drawable invalidates

If you are using a ComplicationDrawable within a CanvasWatchFaceService you may wish to invalidate the watch face when the drawable invalidates, so that the watch face is redrawn when images load or when taps are highlighted. To do this, call Drawable.setCallback(Drawable.Callback) on the drawable with a Drawable.Callback that invalidates the watch face.

Summary

Nested classes

@interface ComplicationDrawable.BorderStyle

This @interface is deprecated. use the Jetpack Wear Watch Face libraries instead.  

XML attributes

android.support.wearable:backgroundColor Defines the background color. 
android.support.wearable:backgroundDrawable Defines the drawable to be used as a background. 
android.support.wearable:borderColor Defines border color. 
android.support.wearable:borderDashGap Defines dash gap for borders with style 'dashed'. 
android.support.wearable:borderDashWidth Defines dash width for borders with style 'dashed'. 
android.support.wearable:borderRadius Defines border radius. 
android.support.wearable:borderStyle Defines border style. 
android.support.wearable:borderWidth Defines stroke width for borders. 
android.support.wearable:highlightColor Defines highlight color. 
android.support.wearable:iconColor Defines icon tint color. 
android.support.wearable:rangedValuePrimaryColor Defines main color for ranged value indicator. 
android.support.wearable:rangedValueProgressHidden Defines visibility for ranged value indicator. 
android.support.wearable:rangedValueRingWidth Defines stroke width for ranged value indicator. 
android.support.wearable:rangedValueSecondaryColor Defines secondary color for ranged value indicator. 
android.support.wearable:textColor Defines text color for short text and long text fields. 
android.support.wearable:textSize Defines text size for short text and long text fields. 
android.support.wearable:textTypeface Defines typeface for short text and long text fields. 
android.support.wearable:titleColor Defines text color for short title and long title fields. 
android.support.wearable:titleSize Defines text size for short title and long title fields. 
android.support.wearable:titleTypeface Defines typeface for short title and long title fields. 

Constants

int BORDER_STYLE_DASHED

Style where the borders are drawn as dashed lines.

int BORDER_STYLE_NONE

Style where the borders are not drawn.

int BORDER_STYLE_SOLID

Style where the borders are drawn without any gap.

Inherited constants

Public constructors

ComplicationDrawable()

Default constructor.

ComplicationDrawable(Context context)

Creates a ComplicationDrawable using the given context.

ComplicationDrawable(ComplicationDrawable drawable)

Public methods

void draw(Canvas canvas)

Draws the complication for the last known time.

void draw(Canvas canvas, long currentTimeMillis)

Draws the complication into bounds set via Drawable.setBounds(Rect) for the given time.

long getHighlightDuration()

Returns the highlight duration.

int getOpacity()
void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)

Inflates this ComplicationDrawable from an XML resource.

boolean isHighlighted()

Returns true if the complication is highlighted.

boolean isRangedValueProgressHidden()

Returns true if the ranged value progress is hidden, false otherwise.

boolean onTap(int x, int y)

Sends the tap action for the complication if tap coordinates are inside the complication bounds.

boolean onTap(int x, int y, long tapTimeMillis)

This method is deprecated. Use onTap(int, int) instead.

void setAlpha(int alpha)

Does nothing.

void setBackgroundColorActive(int backgroundColor)

Sets the background color used in active mode.

void setBackgroundColorAmbient(int backgroundColor)

Sets the background color used in ambient mode.

void setBackgroundDrawableActive(Drawable drawable)

Sets the background drawable used in active mode.

void setBackgroundDrawableAmbient(Drawable drawable)

Sets the background drawable used in ambient mode.

void setBorderColorActive(int borderColor)

Sets the border color used in active mode.

void setBorderColorAmbient(int borderColor)

Sets the border color used in ambient mode.

void setBorderDashGapActive(int borderDashGap)

Sets the dash gap used in active mode when drawing borders with style BORDER_STYLE_DASHED.

void setBorderDashGapAmbient(int borderDashGap)

Sets the dash gap used in ambient mode when drawing borders with style BORDER_STYLE_DASHED.

void setBorderDashWidthActive(int borderDashWidth)

Sets the dash width used in active mode when drawing borders with style BORDER_STYLE_DASHED.

void setBorderDashWidthAmbient(int borderDashWidth)

Sets the dash width used in ambient mode when drawing borders with style BORDER_STYLE_DASHED.

void setBorderRadiusActive(int borderRadius)

Sets the border radius to be applied to the corners of the bounds of the complication in active mode.

void setBorderRadiusAmbient(int borderRadius)

Sets the border radius to be applied to the corners of the bounds of the complication in ambient mode.

void setBorderStyleActive(int borderStyle)

Sets the border style used in active mode.

void setBorderStyleAmbient(int borderStyle)

Sets the border style used in ambient mode.

void setBorderWidthActive(int borderWidth)

Sets the border width for active mode.

void setBorderWidthAmbient(int borderWidth)

Sets the border width for ambient mode.

void setBurnInProtection(boolean burnInProtection)

Sets whether the complication, when rendering in ambient mode, should apply a style suitable for display on devices with burn in protection.

void setColorFilter(ColorFilter colorFilter)

Does nothing.

void setComplicationData(ComplicationData complicationData)

Sets the complication data to be drawn.

void setContext(Context context)

Sets the context used to render the complication.

void setCurrentTimeMillis(long currentTimeMillis)

Sets the current time.

void setHighlightColorActive(int highlightColor)

Sets the highlight color used in active mode, which is applied when setIsHighlighted(boolean) is called.

void setHighlightColorAmbient(int highlightColor)

Sets the highlight color used in ambient mode, which is applied when setIsHighlighted(boolean) is called.

void setHighlightDuration(long highlightDurationMillis)

Sets the duration for the complication to stay highlighted after calling the onTap(int, int, long) method.

void setIconColorActive(int iconColor)

Sets the icon color used for tinting icons in active mode.

void setIconColorAmbient(int iconColor)

Sets the icon color used for tinting icons in ambient mode.

void setImageColorFilterActive(ColorFilter colorFilter)

Sets the color filter used in active mode when rendering large images and small images with style ComplicationData.IMAGE_STYLE_PHOTO.

void setImageColorFilterAmbient(ColorFilter colorFilter)

Sets the color filter used in ambient mode when rendering large images and small images with style ComplicationData.IMAGE_STYLE_PHOTO.

void setInAmbientMode(boolean inAmbientMode)

Sets whether the complication should be rendered in ambient mode.

void setIsHighlighted(boolean isHighlighted)

Sets whether the complication is currently highlighted.

void setLowBitAmbient(boolean lowBitAmbient)

Sets whether the complication, when rendering in ambient mode, should apply a style suitable low bit ambient mode.

void setNoDataText(CharSequence noDataText)

Sets the text to be rendered when ComplicationData is of type ComplicationData.TYPE_NO_DATA.

void setRangedValuePrimaryColorActive(int rangedValuePrimaryColor)

Sets the main color for the ranged value indicator in active mode.

void setRangedValuePrimaryColorAmbient(int rangedValuePrimaryColor)

Sets the main color for the ranged value indicator in ambient mode.

void setRangedValueProgressHidden(boolean rangedValueProgressHidden)

Sets if the ranged value progress should be hidden when ComplicationData is of type ComplicationData.TYPE_RANGED_VALUE.

void setRangedValueRingWidthActive(int rangedValueRingWidth)

Sets the stroke width used in active mode when rendering the ranged value indicator.

void setRangedValueRingWidthAmbient(int rangedValueRingWidth)

Sets the stroke width used in ambient mode when rendering the ranged value indicator.

void setRangedValueSecondaryColorActive(int rangedValueSecondaryColor)

Sets the secondary color for the ranged value indicator in active mode.

void setRangedValueSecondaryColorAmbient(int rangedValueSecondaryColor)

Sets the secondary color for the ranged value indicator in ambient mode.

void setTextColorActive(int textColor)

Sets the text color used in active mode.

void setTextColorAmbient(int textColor)

Sets the text color used in ambient mode.

void setTextSizeActive(int textSize)

Sets the text size used in active mode when rendering short text and long text fields.

void setTextSizeAmbient(int textSize)

Sets the text size used in ambient mode when rendering short text and long text fields.

void setTextTypefaceActive(Typeface textTypeface)

Sets the typeface used in active mode when rendering short text and long text fields.

void setTextTypefaceAmbient(Typeface textTypeface)

Sets the typeface used in ambient mode when rendering short text and long text fields.

void setTitleColorActive(int titleColor)

Sets the title color used in active mode.

void setTitleColorAmbient(int titleColor)

Sets the title color used in ambient mode.

void setTitleSizeActive(int titleSize)

Sets the text size used in active mode when rendering short title and long title fields.

void setTitleSizeAmbient(int titleSize)

Sets the text size used in ambient mode when rendering short title and long title fields.

void setTitleTypefaceActive(Typeface titleTypeface)

Sets the typeface used in active mode when rendering short text and long text fields.

void setTitleTypefaceAmbient(Typeface titleTypeface)

Sets the typeface used in ambient mode when rendering short text and long text fields.

Protected methods

void onBoundsChange(Rect bounds)

Inherited methods

XML attributes

android.support.wearable:backgroundColor

Defines the background color.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:backgroundDrawable

Defines the drawable to be used as a background. Corners of the drawable will be rounded if border radius of the complication drawable is non-zero. Even if a background drawable is set, background color will still be used to fill background of the complication before drawing the drawable.

May be a reference to another resource, in the form "@[+][package:]type/name" or a theme attribute in the form "?[package:]type/name".

Related methods:

android.support.wearable:borderColor

Defines border color.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:borderDashGap

Defines dash gap for borders with style 'dashed'.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:borderDashWidth

Defines dash width for borders with style 'dashed'.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:borderRadius

Defines border radius. Padding will be applied to the content to avoid overflow if border radius is not zero.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:borderStyle

Defines border style.

Must be one of the following constant values.

ConstantValueDescription
dashed2Draw dashed borders. borderDashWidth and borderDashGap attributes can be used to customize dashed borders.
none0Do not draw any borders.
solid1Draw solid borders.

Related methods:

android.support.wearable:borderWidth

Defines stroke width for borders.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:highlightColor

Defines highlight color.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:iconColor

Defines icon tint color.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:rangedValuePrimaryColor

Defines main color for ranged value indicator.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:rangedValueProgressHidden

Defines visibility for ranged value indicator.

May be a boolean value, such as "true" or "false".

Related methods:

android.support.wearable:rangedValueRingWidth

Defines stroke width for ranged value indicator.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:rangedValueSecondaryColor

Defines secondary color for ranged value indicator.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:textColor

Defines text color for short text and long text fields.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:textSize

Defines text size for short text and long text fields.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:textTypeface

Defines typeface for short text and long text fields.

May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character;

Related methods:

android.support.wearable:titleColor

Defines text color for short title and long title fields.

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Related methods:

android.support.wearable:titleSize

Defines text size for short title and long title fields.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), and mm (millimeters).

Related methods:

android.support.wearable:titleTypeface

Defines typeface for short title and long title fields.

May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character;

Related methods:

Constants

BORDER_STYLE_DASHED

public static final int BORDER_STYLE_DASHED

Style where the borders are drawn as dashed lines. If this is set as current border style, dash width and dash gap should also be set via setBorderDashWidthActive(int), setBorderDashGapActive(int), setBorderDashWidthAmbient(int), setBorderDashGapAmbient(int) or XML attributes, or default values will be used.

Constant Value: 2 (0x00000002)

BORDER_STYLE_NONE

public static final int BORDER_STYLE_NONE

Style where the borders are not drawn.

Constant Value: 0 (0x00000000)

BORDER_STYLE_SOLID

public static final int BORDER_STYLE_SOLID

Style where the borders are drawn without any gap.

Constant Value: 1 (0x00000001)

Public constructors

ComplicationDrawable

public ComplicationDrawable ()

Default constructor.

ComplicationDrawable

public ComplicationDrawable (Context context)

Creates a ComplicationDrawable using the given context. If this constructor is used, calling setContext(Context) may not be necessary.

Parameters
context Context

ComplicationDrawable

public ComplicationDrawable (ComplicationDrawable drawable)

Parameters
drawable ComplicationDrawable

Public methods

draw

public void draw (Canvas canvas)

Draws the complication for the last known time. Last known time is derived from either draw(Canvas, long) or setCurrentTimeMillis(long) depending on which was called most recently.

Parameters
canvas Canvas: Canvas for the complication to be drawn onto

draw

public void draw (Canvas canvas, 
                long currentTimeMillis)

Draws the complication into bounds set via Drawable.setBounds(Rect) for the given time. Calling this method is equivalent to calling setCurrentTimeMillis(long) followed by draw(Canvas), so it will update the last known time and any future calls to draw(Canvas) will use the time passed to this method.

Parameters
canvas Canvas: Canvas for the complication to be drawn onto

currentTimeMillis long: The time complication is drawn at in milliseconds

getHighlightDuration

public long getHighlightDuration ()

Returns the highlight duration.

Returns
long

getOpacity

public int getOpacity ()

Returns
int

inflate

public void inflate (Resources r, 
                XmlPullParser parser, 
                AttributeSet attrs, 
                Resources.Theme theme)

Inflates this ComplicationDrawable from an XML resource. This can't be called more than once for each ComplicationDrawable. Note that framework may have called this once to create the ComplicationDrawable instance from an XML resource.

Parameters
r Resources: Resources used to resolve attribute values

parser XmlPullParser: XML parser from which to inflate this ComplicationDrawable

attrs AttributeSet: Base set of attribute values

theme Resources.Theme: Ignored by ComplicationDrawable

Throws
XmlPullParserException
IOException

isHighlighted

public boolean isHighlighted ()

Returns true if the complication is highlighted.

Returns
boolean

isRangedValueProgressHidden

public boolean isRangedValueProgressHidden ()

Returns true if the ranged value progress is hidden, false otherwise.

Returns
boolean

onTap

public boolean onTap (int x, 
                int y)

Sends the tap action for the complication if tap coordinates are inside the complication bounds.

This method will also highlight the complication. The highlight duration is 300 milliseconds by default but can be modified using the setHighlightDuration(long) method.

If ComplicationData has the type ComplicationData.TYPE_NO_PERMISSION, this method will launch an intent to request complication permission for the watch face. This will only work if the context set by setContext(Context) or the constructor is an instance of WatchFaceService.

Parameters
x int: X coordinate of the tap relative to screen origin

y int: Y coordinate of the tap relative to screen origin

Returns
boolean true if the action was successful, false if complication data is not set, the complication has no tap action, the tap action (i.e. PendingIntent) is cancelled, or the given x and y are not inside the complication bounds.

onTap

public boolean onTap (int x, 
                int y, 
                long tapTimeMillis)

This method is deprecated.
Use onTap(int, int) instead.

Parameters
x int

y int

tapTimeMillis long

Returns
boolean

setAlpha

public void setAlpha (int alpha)

Does nothing.

Parameters
alpha int

setBackgroundColorActive

public void setBackgroundColorActive (int backgroundColor)

Sets the background color used in active mode.

Related XML Attributes:

Parameters
backgroundColor int

setBackgroundColorAmbient

public void setBackgroundColorAmbient (int backgroundColor)

Sets the background color used in ambient mode.

Related XML Attributes:

Parameters
backgroundColor int

setBackgroundDrawableActive

public void setBackgroundDrawableActive (Drawable drawable)

Sets the background drawable used in active mode.

Related XML Attributes:

Parameters
drawable Drawable

setBackgroundDrawableAmbient

public void setBackgroundDrawableAmbient (Drawable drawable)

Sets the background drawable used in ambient mode.

Related XML Attributes:

Parameters
drawable Drawable

setBorderColorActive

public void setBorderColorActive (int borderColor)

Sets the border color used in active mode.

Related XML Attributes:

Parameters
borderColor int

setBorderColorAmbient

public void setBorderColorAmbient (int borderColor)

Sets the border color used in ambient mode.

Related XML Attributes:

Parameters
borderColor int

setBorderDashGapActive

public void setBorderDashGapActive (int borderDashGap)

Sets the dash gap used in active mode when drawing borders with style BORDER_STYLE_DASHED.

Related XML Attributes:

Parameters
borderDashGap int: Dash gap in pixels

setBorderDashGapAmbient

public void setBorderDashGapAmbient (int borderDashGap)

Sets the dash gap used in ambient mode when drawing borders with style BORDER_STYLE_DASHED.

Related XML Attributes:

Parameters
borderDashGap int: Dash gap in pixels

setBorderDashWidthActive

public void setBorderDashWidthActive (int borderDashWidth)

Sets the dash width used in active mode when drawing borders with style BORDER_STYLE_DASHED.

Related XML Attributes:

Parameters
borderDashWidth int: Dash width in pixels

setBorderDashWidthAmbient

public void setBorderDashWidthAmbient (int borderDashWidth)

Sets the dash width used in ambient mode when drawing borders with style BORDER_STYLE_DASHED.

Related XML Attributes:

Parameters
borderDashWidth int: Dash width in pixels

setBorderRadiusActive

public void setBorderRadiusActive (int borderRadius)

Sets the border radius to be applied to the corners of the bounds of the complication in active mode. Border radius will be limited to the half of width or height, depending on which one is smaller.

Related XML Attributes:

Parameters
borderRadius int: Border radius in pixels

setBorderRadiusAmbient

public void setBorderRadiusAmbient (int borderRadius)

Sets the border radius to be applied to the corners of the bounds of the complication in ambient mode. Border radius will be limited to the half of width or height, depending on which one is smaller.

Related XML Attributes:

Parameters
borderRadius int: Border radius in pixels

setBorderStyleActive

public void setBorderStyleActive (int borderStyle)

Sets the border style used in active mode. It should be one of BORDER_STYLE_NONE, BORDER_STYLE_SOLID, or BORDER_STYLE_DASHED.

Related XML Attributes:

Parameters
borderStyle int

setBorderStyleAmbient

public void setBorderStyleAmbient (int borderStyle)

Sets the border style used in ambient mode. It should be one of BORDER_STYLE_NONE, BORDER_STYLE_SOLID, or BORDER_STYLE_DASHED.

Related XML Attributes:

Parameters
borderStyle int

setBorderWidthActive

public void setBorderWidthActive (int borderWidth)

Sets the border width for active mode.

Related XML Attributes:

Parameters
borderWidth int: Border width in pixels

setBorderWidthAmbient

public void setBorderWidthAmbient (int borderWidth)

Sets the border width for ambient mode.

Related XML Attributes:

Parameters
borderWidth int: Border width in pixels

setBurnInProtection

public void setBurnInProtection (boolean burnInProtection)

Sets whether the complication, when rendering in ambient mode, should apply a style suitable for display on devices with burn in protection. This should be set when WatchFaceService.Engine.onPropertiesChanged(android.os.Bundle) is called.

Parameters
burnInProtection boolean

setColorFilter

public void setColorFilter (ColorFilter colorFilter)

Does nothing. Use setImageColorFilterActive(ColorFilter) or setImageColorFilterAmbient(ColorFilter) instead to apply color filter to small and large images.

Parameters
colorFilter ColorFilter

setComplicationData

public void setComplicationData (ComplicationData complicationData)

Sets the complication data to be drawn. If complicationData is null, nothing will be drawn when draw(Canvas) or draw(Canvas, long) is called.

Parameters
complicationData ComplicationData

setContext

public void setContext (Context context)

Sets the context used to render the complication. If a context is not set, ComplicationDrawable will throw an IllegalStateException if one of draw(Canvas), draw(Canvas, long), Drawable.setBounds(Rect), or setComplicationData(ComplicationData) is called.

While this can be called from any context, ideally, a WatchFaceService object should be passed here to allow creating permission dialogues by the onTap(int, int, long) method, in case current watch face doesn't have the permission to receive complication data.

If this ComplicationDrawable is retrieved using Resources.getDrawable(int, Theme), this method must be called before calling any of the methods mentioned above.

If this ComplicationDrawable is not inflated from an XML file, this method will reset the style to match the default values, so if ComplicationDrawable() is used to construct a ComplicationDrawable, this method should be called right after.

Parameters
context Context

setCurrentTimeMillis

public void setCurrentTimeMillis (long currentTimeMillis)

Sets the current time. This will be used to render ComplicationData with time dependent text.

Parameters
currentTimeMillis long: time in milliseconds

setHighlightColorActive

public void setHighlightColorActive (int highlightColor)

Sets the highlight color used in active mode, which is applied when setIsHighlighted(boolean) is called.

Related XML Attributes:

Parameters
highlightColor int: Highlight color

setHighlightColorAmbient

public void setHighlightColorAmbient (int highlightColor)

Sets the highlight color used in ambient mode, which is applied when setIsHighlighted(boolean) is called.

Related XML Attributes:

Parameters
highlightColor int: Highlight color

setHighlightDuration

public void setHighlightDuration (long highlightDurationMillis)

Sets the duration for the complication to stay highlighted after calling the onTap(int, int, long) method. Default value is 300 milliseconds. Setting highlight duration to 0 disables highlighting.

Parameters
highlightDurationMillis long: highlight duration in milliseconds

setIconColorActive

public void setIconColorActive (int iconColor)

Sets the icon color used for tinting icons in active mode.

Related XML Attributes:

Parameters
iconColor int

setIconColorAmbient

public void setIconColorAmbient (int iconColor)

Sets the icon color used for tinting icons in ambient mode.

Related XML Attributes:

Parameters
iconColor int

setImageColorFilterActive

public void setImageColorFilterActive (ColorFilter colorFilter)

Sets the color filter used in active mode when rendering large images and small images with style ComplicationData.IMAGE_STYLE_PHOTO.

Parameters
colorFilter ColorFilter

setImageColorFilterAmbient

public void setImageColorFilterAmbient (ColorFilter colorFilter)

Sets the color filter used in ambient mode when rendering large images and small images with style ComplicationData.IMAGE_STYLE_PHOTO.

Parameters
colorFilter ColorFilter

setInAmbientMode

public void setInAmbientMode (boolean inAmbientMode)

Sets whether the complication should be rendered in ambient mode. Ideally, this should be set when WatchFaceService.Engine.onAmbientModeChanged(boolean) is called.

Parameters
inAmbientMode boolean

setIsHighlighted

public void setIsHighlighted (boolean isHighlighted)

Sets whether the complication is currently highlighted. This may be called by a watch face when a complication is tapped.

If watch face is in ambient mode, highlight will not be visible even if this is set to true, because it may cause burn-in or power inefficiency.

Parameters
isHighlighted boolean

setLowBitAmbient

public void setLowBitAmbient (boolean lowBitAmbient)

Sets whether the complication, when rendering in ambient mode, should apply a style suitable low bit ambient mode. This should be set when WatchFaceService.Engine.onPropertiesChanged(android.os.Bundle) is called.

Parameters
lowBitAmbient boolean

setNoDataText

public void setNoDataText (CharSequence noDataText)

Sets the text to be rendered when ComplicationData is of type ComplicationData.TYPE_NO_DATA. If no data text is null, an empty text will be rendered.

Parameters
noDataText CharSequence

setRangedValuePrimaryColorActive

public void setRangedValuePrimaryColorActive (int rangedValuePrimaryColor)

Sets the main color for the ranged value indicator in active mode.

Related XML Attributes:

Parameters
rangedValuePrimaryColor int

setRangedValuePrimaryColorAmbient

public void setRangedValuePrimaryColorAmbient (int rangedValuePrimaryColor)

Sets the main color for the ranged value indicator in ambient mode.

Related XML Attributes:

Parameters
rangedValuePrimaryColor int

setRangedValueProgressHidden

public void setRangedValueProgressHidden (boolean rangedValueProgressHidden)

Sets if the ranged value progress should be hidden when ComplicationData is of type ComplicationData.TYPE_RANGED_VALUE.

Related XML Attributes:

Parameters
rangedValueProgressHidden boolean: true if progress should be hidden, false otherwise

setRangedValueRingWidthActive

public void setRangedValueRingWidthActive (int rangedValueRingWidth)

Sets the stroke width used in active mode when rendering the ranged value indicator.

Related XML Attributes:

Parameters
rangedValueRingWidth int: Ring width in pixels

setRangedValueRingWidthAmbient

public void setRangedValueRingWidthAmbient (int rangedValueRingWidth)

Sets the stroke width used in ambient mode when rendering the ranged value indicator.

Related XML Attributes:

Parameters
rangedValueRingWidth int: Ring width in pixels

setRangedValueSecondaryColorActive

public void setRangedValueSecondaryColorActive (int rangedValueSecondaryColor)

Sets the secondary color for the ranged value indicator in active mode.

Related XML Attributes:

Parameters
rangedValueSecondaryColor int

setRangedValueSecondaryColorAmbient

public void setRangedValueSecondaryColorAmbient (int rangedValueSecondaryColor)

Sets the secondary color for the ranged value indicator in ambient mode.

Related XML Attributes:

Parameters
rangedValueSecondaryColor int

setTextColorActive

public void setTextColorActive (int textColor)

Sets the text color used in active mode. Text color is used for rendering short text and long text fields.

Related XML Attributes:

Parameters
textColor int

setTextColorAmbient

public void setTextColorAmbient (int textColor)

Sets the text color used in ambient mode. Text color is used for rendering short text and long text fields.

Related XML Attributes:

Parameters
textColor int

setTextSizeActive

public void setTextSizeActive (int textSize)

Sets the text size used in active mode when rendering short text and long text fields.

Related XML Attributes:

Parameters
textSize int

setTextSizeAmbient

public void setTextSizeAmbient (int textSize)

Sets the text size used in ambient mode when rendering short text and long text fields.

Related XML Attributes:

Parameters
textSize int

setTextTypefaceActive

public void setTextTypefaceActive (Typeface textTypeface)

Sets the typeface used in active mode when rendering short text and long text fields.

Related XML Attributes:

Parameters
textTypeface Typeface

setTextTypefaceAmbient

public void setTextTypefaceAmbient (Typeface textTypeface)

Sets the typeface used in ambient mode when rendering short text and long text fields.

Related XML Attributes:

Parameters
textTypeface Typeface

setTitleColorActive

public void setTitleColorActive (int titleColor)

Sets the title color used in active mode. Title color is used for rendering short title and long title fields.

Related XML Attributes:

Parameters
titleColor int

setTitleColorAmbient

public void setTitleColorAmbient (int titleColor)

Sets the title color used in ambient mode. Title color is used for rendering short title and long title fields.

Related XML Attributes:

Parameters
titleColor int

setTitleSizeActive

public void setTitleSizeActive (int titleSize)

Sets the text size used in active mode when rendering short title and long title fields.

Related XML Attributes:

Parameters
titleSize int

setTitleSizeAmbient

public void setTitleSizeAmbient (int titleSize)

Sets the text size used in ambient mode when rendering short title and long title fields.

Related XML Attributes:

Parameters
titleSize int

setTitleTypefaceActive

public void setTitleTypefaceActive (Typeface titleTypeface)

Sets the typeface used in active mode when rendering short text and long text fields.

Related XML Attributes:

Parameters
titleTypeface Typeface

setTitleTypefaceAmbient

public void setTitleTypefaceAmbient (Typeface titleTypeface)

Sets the typeface used in ambient mode when rendering short text and long text fields.

Related XML Attributes:

Parameters
titleTypeface Typeface

Protected methods

onBoundsChange

protected void onBoundsChange (Rect bounds)

Parameters
bounds Rect