Added in API level 29

Builder


class Builder
kotlin.Any
   ↳ android.graphics.fonts.FontFamily.Builder

A builder class for creating new FontFamily.

Summary

Public constructors
Builder(font: Font)

Constructs a builder.

Public methods
FontFamily.Builder
addFont(font: Font)

Adds different style font to the builder.

FontFamily

Build the font family

FontFamily?

Build a variable font family that automatically adjust the `wght` and `ital` axes value for the requested weight/italic style values.

Public constructors

Builder

Added in API level 29
Builder(font: Font)

Constructs a builder.

Parameters
font Font: a font This value cannot be null.

Public methods

addFont

Added in API level 29
fun addFont(font: Font): FontFamily.Builder

Adds different style font to the builder. System will select the font if the text style is closest to the font. If the same style font is already added to the builder, this method will fail with IllegalArgumentException. Note that system assumes all fonts bundled in FontFamily have the same coverage for the code points. For example, regular style font and bold style font must have the same code point coverage, otherwise some character may be shown as tofu.

Parameters
font Font: a font This value cannot be null.
Return
FontFamily.Builder this builder This value cannot be null.

build

Added in API level 29
fun build(): FontFamily

Build the font family

Return
FontFamily a font family This value cannot be null.

buildVariableFamily

Added in API level 35
fun buildVariableFamily(): FontFamily?

Build a variable font family that automatically adjust the `wght` and `ital` axes value for the requested weight/italic style values. To build a variable font family, added fonts must meet one of following conditions. If two font files are added, both font files must support `wght` axis and one font must support FontStyle.FONT_SLANT_UPRIGHT and another font must support FontStyle.FONT_SLANT_ITALIC. If the requested weight value is lower than minimum value of the supported `wght` axis, the minimum supported `wght` value is used. If the requested weight value is larger than maximum value of the supported `wght` axis, the maximum supported `wght` value is used. The weight values of the fonts are ignored. If one font file is added, that font must support the `wght` axis. If that font support `ital` axis, that `ital` value is set to 1 when the italic style is requested. If that font doesn't support `ital` axis, synthetic italic may be used. If the requested weight value is lower than minimum value of the supported `wght` axis, the minimum supported `wght` value is used. If the requested weight value is larger than maximum value of the supported `wght`axis, the maximum supported `wght` value is used. The weight value of the font is ignored. If none of the above conditions are met, the provided font files cannot be used for variable font family and this function returns null. Even if this function returns null, you can still use build() method for creating FontFamily instance with manually specifying variation settings by using Font.Builder.setFontVariationSettings(String).

Return
FontFamily? A variable font family. null if a variable font cannot be built from the given fonts.