OpacityKt

Added in 1.3.0

public final class OpacityKt


Summary

Public methods

static final @NonNull LayoutModifier
@RequiresSchemaVersion(major = 1, minor = 500)
fadeInOnVisibleModifier(
    @NonNull LayoutModifier receiver,
    @NonNull AnimationParameterBuilders.AnimationSpec animationSpec
)

The recommended opacity modifier for Lottie animation or any other element that should appear as the layout is swiped to.

static final @NonNull LayoutModifier
@RequiresSchemaVersion(major = 1, minor = 400)
opacity(
    @NonNull LayoutModifier receiver,
    @FloatRange(from = 0.0, to = 1.0) float staticValue,
    DynamicBuilders.DynamicFloat dynamicValue
)

Adds a modifier to specify the opacity of the element with a value from 0 to 1, where 0 means the element is completely transparent and 1 means the element is completely opaque.

Public methods

fadeInOnVisibleModifier

@RequiresSchemaVersion(major = 1, minor = 500)
public static final @NonNull LayoutModifier fadeInOnVisibleModifier(
    @NonNull LayoutModifier receiver,
    @NonNull AnimationParameterBuilders.AnimationSpec animationSpec
)

The recommended opacity modifier for Lottie animation or any other element that should appear as the layout is swiped to.

It is recommended to be used when Lottie animation is infinite, so that Lottie animation first becomes visible with fading in, followed by animation show, to avoid showing static state while user swipes to the layout.

import androidx.wear.protolayout.ResourceBuilders.LottieProperty.colorForSlot
import androidx.wear.protolayout.TriggerBuilders.createOnVisibleTrigger
import androidx.wear.protolayout.layout.imageResource
import androidx.wear.protolayout.layout.lottieResource
import androidx.wear.protolayout.material3.backgroundImage
import androidx.wear.protolayout.material3.materialScope
import androidx.wear.protolayout.material3.materialScopeWithResources
import androidx.wear.protolayout.material3.primaryLayout
import androidx.wear.protolayout.material3.text
import androidx.wear.protolayout.modifiers.LayoutModifier
import androidx.wear.protolayout.modifiers.background
import androidx.wear.protolayout.modifiers.fadeInOnVisibleModifier

materialScopeWithResources(
        context = context,
        protoLayoutScope = scope,
        deviceConfiguration = deviceConfiguration,
    ) {
        primaryLayout(
            mainSlot = {
                backgroundImage(
                    resource =
                        imageResource(
                            lottie =
                                lottieResource(
                                    rawResourceId = 1234, // Lottie Raw Resource ID,
                                    startTrigger = createOnVisibleTrigger(),
                                    properties =
                                        listOf(colorForSlot("slotID", colorScheme.tertiary.prop)),
                                )
                        ),
                    modifier = LayoutModifier.fadeInOnVisibleModifier(),
                )
            }
        )
    }
@RequiresSchemaVersion(major = 1, minor = 400)
public static final @NonNull LayoutModifier opacity(
    @NonNull LayoutModifier receiver,
    @FloatRange(from = 0.0, to = 1.0) float staticValue,
    DynamicBuilders.DynamicFloat dynamicValue
)

Adds a modifier to specify the opacity of the element with a value from 0 to 1, where 0 means the element is completely transparent and 1 means the element is completely opaque.

Parameters
@FloatRange(from = 0.0, to = 1.0) float staticValue

The static value for opacity. This value will be used if dynamicValue is null, or if can't be resolved.

DynamicBuilders.DynamicFloat dynamicValue

The dynamic value for opacity. This can be used to change the opacity of the element dynamically (without changing the layout definition). To create a smooth transition for the dynamic change, you can use one of DynamicFloat.animate methods.