# LayoutElementBuilders.Image.Builder

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

*** ** * ** ***

<br />

```
class LayoutElementBuilders.Image.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image`.

## Summary

| ### Public constructors |
|---|
| `[Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder())()` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` constructor which supports automatic resource registration, paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)`. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)(scope: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ProtoLayoutScope)` Creates an instance of `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` with automatic resource registration used. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image` | `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#build()()` Builds an instance with values accumulated in this Builder. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setColorFilter(androidx.wear.protolayout.LayoutElementBuilders.ColorFilter)(colorFilter: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.ColorFilter)` Sets filtering parameters for this image. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setContentScaleMode(int)(contentScaleMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets how to scale the image resource inside the bounds specified by width/height if its size does not match those bounds. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setContentScaleMode(androidx.wear.protolayout.LayoutElementBuilders.ContentScaleModeProp)( contentScaleMode: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.ContentScaleModeProp )` Sets how to scale the image resource inside the bounds specified by width/height if its size does not match those bounds. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setHeight(androidx.wear.protolayout.DimensionBuilders.ImageDimension)(height: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/DimensionBuilders.ImageDimension)` Sets the height of this image. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)(resource: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ResourceBuilders.ImageResource)` Sets the specific resource of the image to render. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource,java.lang.String)( resource: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ResourceBuilders.ImageResource, resourceId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html )` Sets the specific resource of the image to render. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setModifiers(androidx.wear.protolayout.ModifiersBuilders.Modifiers)(modifiers: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers)` Sets `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers` for this element. |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) [setResourceId](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(java.lang.String))(resourceId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)` paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` for automatic resource registration. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) [setResourceId](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(androidx.wear.protolayout.TypeBuilders.StringProp))(resourceId: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/TypeBuilders.StringProp)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)` paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` for automatic resource registration. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 0) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setWidth(androidx.wear.protolayout.DimensionBuilders.ImageDimension)(width: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/DimensionBuilders.ImageDimension)` Sets the width of this image. |

## Public constructors

### Builder

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

```
[Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder())()
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` constructor which supports automatic resource registration, paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)`.

Creates an instance of `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder`.

Note that, when using this constructor, it should be paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(java.lang.String)`, and resource used for it needs to be manually registered in ` TileService#onTileResourcesRequest` for Tiles. This constructor can't be mixed with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)`, otherwise an exception will be thrown.

### Builder

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

```
Builder(scope: ProtoLayoutScope)
```

Creates an instance of `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder` with automatic resource registration used.

Note that, when using this constructor, it should be paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)`. Additionally, `Resources` object shouldn't be provided in `TileService#onTileResourcesRequest` method for your Tile as resources would be automatically registered. This constructor can't be mixed with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(java.lang.String)`, otherwise an exception will be thrown.

When using this constructor and automatic resource registration, there's no need to provide resources version in `Tile.Builder.setResourcesVersion`, as `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ProtoLayoutScope` will handle versioning and changes of the resources automatically. However, setting custom version in `Tile.Builder.setResourcesVersion` is still supported.

## Public functions

### build

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

```
fun build(): LayoutElementBuilders.Image
```

Builds an instance with values accumulated in this Builder.

### setColorFilter

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setColorFilter(colorFilter: LayoutElementBuilders.ColorFilter): LayoutElementBuilders.Image.Builder
```

Sets filtering parameters for this image. If not specified, defaults to no filtering.

### setContentScaleMode

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setContentScaleMode(contentScaleMode: Int): LayoutElementBuilders.Image.Builder
```

Sets how to scale the image resource inside the bounds specified by width/height if its size does not match those bounds. Defaults to CONTENT_SCALE_MODE_FIT.

### setContentScaleMode

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setContentScaleMode(
    contentScaleMode: LayoutElementBuilders.ContentScaleModeProp
): LayoutElementBuilders.Image.Builder
```

Sets how to scale the image resource inside the bounds specified by width/height if its size does not match those bounds. Defaults to CONTENT_SCALE_MODE_FIT.

### setHeight

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setHeight(height: DimensionBuilders.ImageDimension): LayoutElementBuilders.Image.Builder
```

Sets the height of this image. If not defined, the image will not be rendered.

### setImageResource

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setImageResource(resource: ResourceBuilders.ImageResource): LayoutElementBuilders.Image.Builder
```

Sets the specific resource of the image to render. This method will automatically assign the ID and add the given resource in the resources bundle.

| Parameters |
|---|---|
| `resource: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ResourceBuilders.ImageResource` | An Image resource, used in the layout in the place of this `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image` element. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | if this method is called without `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` or after `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(java.lang.String)` was already called. |

### setImageResource

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setImageResource(
    resource: ResourceBuilders.ImageResource,
    resourceId: String
): LayoutElementBuilders.Image.Builder
```

Sets the specific resource of the image to render. This method will automatically add the given resource in the resources bundle.

| Parameters |
|---|---|
| `resource: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ResourceBuilders.ImageResource` | An Image resource, used in the layout in the place of this `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image` element. |
| `resourceId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The ID of the resource |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | if this method is called without `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` or after `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(java.lang.String)` was already called. |

### setModifiers

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setModifiers(modifiers: ModifiersBuilders.Modifiers): LayoutElementBuilders.Image.Builder
```

Sets `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers` for this element.

### setResourceId

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun [setResourceId](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(java.lang.String))(resourceId: String): LayoutElementBuilders.Image.Builder
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)` paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` for automatic resource registration.

Sets the resource_id of the image to render. This must exist in the supplied resource bundle.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | if this method is called with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` or after `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)` was already called. |

### setResourceId

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun [setResourceId](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setResourceId(androidx.wear.protolayout.TypeBuilders.StringProp))(resourceId: TypeBuilders.StringProp): LayoutElementBuilders.Image.Builder
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)` paired with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` for automatic resource registration.

Sets the resource_id of the image to render. This must exist in the supplied resource bundle.

Note that this field only supports static values.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | if this method is called with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#Builder(androidx.wear.protolayout.ProtoLayoutScope)` or after `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Image.Builder#setImageResource(androidx.wear.protolayout.ResourceBuilders.ImageResource)` was already called. |

### setWidth

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

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setWidth(width: DimensionBuilders.ImageDimension): LayoutElementBuilders.Image.Builder
```

Sets the width of this image. If not defined, the image will not be rendered.