FontSynthesis


Possible options for font synthesis.

FontSynthesis is used to specify whether the system should fake bold or slanted glyphs when the FontFamily used does not contain bold or oblique Fonts.

If the font family does not include a requested FontWeight or FontStyle, the system fakes bold or slanted glyphs when the Weight or Style, respectively, or both when All is set. If this is not desired, use None to disable font synthesis.

It is possible to fake an increase of FontWeight but not a decrease. It is possible to fake a regular font slanted, but not vice versa.

FontSynthesis works the same way as the CSS font-synthesis property.

import androidx.compose.material.Text
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontSynthesis
import androidx.compose.ui.text.font.FontWeight

// The font family contains a single font, with normal weight
val fontFamily = FontFamily(Font(resId = R.font.myfont, weight = FontWeight.Normal))
// Configuring the Text composable to be bold
// Using FontSynthesis.Weight to have the system render the font bold my making the glyphs
// thicker
Text(
    text = "Demo Text",
    style =
        TextStyle(
            fontFamily = fontFamily,
            fontWeight = FontWeight.Bold,
            fontSynthesis = FontSynthesis.Weight,
        ),
)

Summary

Public companion functions

FontSynthesis
valueOf(value: Int)

Creates a FontSynthesis from the given integer value.

Cmn

Public companion properties

FontSynthesis

The system synthesizes both bold and slanted fonts if either of them are not available in the FontFamily

Cmn
FontSynthesis

Turns off font synthesis.

Cmn
FontSynthesis

Only an slanted font is synthesized, if it is not available in the FontFamily.

Cmn
FontSynthesis

Only a bold font is synthesized, if it is not available in the FontFamily.

Cmn

Public functions

open String
Cmn

Public properties

Int
Cmn

Public companion functions

valueOf

fun valueOf(value: Int): FontSynthesis

Creates a FontSynthesis from the given integer value. This can be useful if you need to serialize/deserialize FontSynthesis values.

Parameters
value: Int

The integer representation of the FontSynthesis.

See also
value

Public companion properties

All

val AllFontSynthesis

The system synthesizes both bold and slanted fonts if either of them are not available in the FontFamily

None

val NoneFontSynthesis

Turns off font synthesis. Neither bold nor slanted faces are synthesized if they don't exist in the FontFamily

Style

val StyleFontSynthesis

Only an slanted font is synthesized, if it is not available in the FontFamily. Bold fonts will not be synthesized.

Weight

val WeightFontSynthesis

Only a bold font is synthesized, if it is not available in the FontFamily. Slanted fonts will not be synthesized.

Public functions

toString

open fun toString(): String

Public properties

value

val valueInt