TextMotion
Class
Common
expect class TextMotion
Defines ways to render and place glyphs to provide readability and smooth animations for text.
Companion Object
Properties
Common
val Static: TextMotion
Optimizes glyph shaping, placement, and overall rendering for maximum readability.
Intended for text that is not animated. This is the default TextMotion
.
Common
val Animated: TextMotion
Text is rendered for maximum linearity which provides smooth animations for text.
Trade-off is the readability of the text on some low DPI devices, which still should not
be a major concern. Use this TextMotion
if you are planning to scale, translate, or
rotate text.
Android
actual class TextMotion
internal constructor(
internal val linearity: Linearity,
internal val subpixelTextPositioning: Boolean,
)
Implementation of possible TextMotion configurations on Android.
Companion Object
Properties
Android
actual val Static: TextMotion
Android
actual val Animated: TextMotion
Code Examples
TextMotionSample
/**
* This sample demonstrates how to define TextMotion on a Text composable that scales up and down
* repeatedly.
*/
@Composable
fun TextMotionSample() {
val infiniteTransition = rememberInfiniteTransition()
val scale by
infiniteTransition.animateFloat(
initialValue = 1f,
targetValue = 8f,
animationSpec = infiniteRepeatable(tween(1000), RepeatMode.Reverse),
)
Text(
text = "Hello",
modifier =
Modifier.graphicsLayer {
scaleX = scale
scaleY = scale
transformOrigin = TransformOrigin.Center
},
// Text composable does not take TextMotion as a parameter.
// Provide it via style argument but make sure that we are copying from current theme
style = LocalTextStyle.current.copy(textMotion = TextMotion.Animated),
)
}