# CircularProgressIndicator

Artifact: [androidx.wear.protolayout:protolayout-material](https://developer.android.com/jetpack/androidx/releases/wear-protolayout) [View Source](https://cs.android.com/search?q=file:androidx/wear/protolayout/material/CircularProgressIndicator.java+class:androidx.wear.protolayout.material.CircularProgressIndicator) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

*** ** * ** ***


```
public class CircularProgressIndicator implements LayoutElementBuilders.LayoutElement
```

<br />

*** ** * ** ***

ProtoLayout component `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator` that represents circular progress indicator which supports a gap in the circular track between startAngle and endAngle.

The CircularProgressIndicator is a colored arc around the edge of the screen with the given start and end angles, which can describe a full or partial circle. Behind it is an arc with optional gap representing full progress. The recommended sizes are defined in `https://developer.android.com/reference/androidx/wear/protolayout/material/ProgressIndicatorDefaults`. Unless specified, the CircularProgressIndicator will have the full length.

The recommended set of `https://developer.android.com/reference/androidx/wear/protolayout/material/ProgressIndicatorColors` can be obtained from `https://developer.android.com/reference/androidx/wear/protolayout/material/ProgressIndicatorDefaults`, e.g. `https://developer.android.com/reference/androidx/wear/protolayout/material/ProgressIndicatorDefaults#DEFAULT_COLORS()` to get a default color scheme for a `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator`.

When accessing the contents of a container for testing, note that this element can't be simply casted back to the original type, i.e.:

```
CircularProgressIndicator cpi = new CircularProgressIndicator...
Box box = new Box.Builder().addContent(cpi).build();

CircularProgressIndicator myCpi = (CircularProgressIndicator) box.getContents().get(0);
```
will fail.

To be able to get `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator` object from any layout element, `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement)` method should be used, i.e.:

```
CircularProgressIndicator myCpi =
  CircularProgressIndicator.fromLayoutElement(box.getContents().get(0));
```

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator.Builder` Builder class for `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator` |

| ### Public methods |
|---|---|
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#fromLayoutElement(androidx.wear.protolayout.LayoutElementBuilders.LayoutElement)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/wear/protolayout/LayoutElementBuilders.LayoutElement element)` Returns CircularProgressIndicator object from the given LayoutElement (e.g. one retrieved from a container's content with `container.getContents().get(index)`) if that element can be converted to CircularProgressIndicator. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/wear/protolayout/material/ProgressIndicatorColors` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#getCircularProgressIndicatorColors()()` Returns main arc color of this CircularProgressIndicator. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/wear/protolayout/TypeBuilders.StringProp` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#getContentDescription()()` Returns content description of this CircularProgressIndicator. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/wear/protolayout/DimensionBuilders.DegreesProp` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#getEndAngle()()` Returns start angle of this CircularProgressIndicator. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/wear/protolayout/DimensionBuilders.DegreesProp` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#getProgress()()` Returns angle representing progressed part of this CircularProgressIndicator. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/wear/protolayout/DimensionBuilders.DegreesProp` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#getStartAngle()()` Returns start angle of this CircularProgressIndicator. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/wear/protolayout/DimensionBuilders.DpProp` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#getStrokeWidth()()` Returns stroke width of this CircularProgressIndicator. |
| `boolean` | `https://developer.android.com/reference/androidx/wear/protolayout/material/CircularProgressIndicator#isOuterMarginApplied()()` Returns whether there is a margin around this indicator or not. |

## Public methods

### fromLayoutElement

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public static @Nullable CircularProgressIndicator fromLayoutElement(@NonNull LayoutElementBuilders.LayoutElement element)
```

Returns CircularProgressIndicator object from the given LayoutElement (e.g. one retrieved from a container's content with `container.getContents().get(index)`) if that element can be converted to CircularProgressIndicator. Otherwise, it will return null.

### getCircularProgressIndicatorColors

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public @NonNull ProgressIndicatorColors getCircularProgressIndicatorColors()
```

Returns main arc color of this CircularProgressIndicator.

### getContentDescription

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public @Nullable TypeBuilders.StringProp getContentDescription()
```

Returns content description of this CircularProgressIndicator.

### getEndAngle

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public @NonNull DimensionBuilders.DegreesProp getEndAngle()
```

Returns start angle of this CircularProgressIndicator.

### getProgress

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public @NonNull DimensionBuilders.DegreesProp getProgress()
```

Returns angle representing progressed part of this CircularProgressIndicator.

### getStartAngle

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public @NonNull DimensionBuilders.DegreesProp getStartAngle()
```

Returns start angle of this CircularProgressIndicator.

### getStrokeWidth

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
public @NonNull DimensionBuilders.DpProp getStrokeWidth()
```

Returns stroke width of this CircularProgressIndicator.

### isOuterMarginApplied

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.2.0)

```
public boolean isOuterMarginApplied()
```

Returns whether there is a margin around this indicator or not.