Skip to content

TextLayoutBuilder

Build text Layouts easily on Android.

Features

  • Create text Layouts easily.
  • Reuse builders to create similarly styled Layouts.
  • Cache Layouts of commonly used strings.
  • Improve performance by warming up the FreeType cache.

Download

If using Gradle, add this to your build.gradle:

compile 'com.facebook.fbui.textlayoutbuilder:textlayoutbuilder:1.7.0'

or, if using Maven:

<dependency>
<groupId>com.facebook.fbui.textlayoutbuilder</groupId>
<artifactId>textlayoutbuilder</artifactId>
<version>1.7.0</version>
<type>aar</type>
</dependency>

Usage

  1. Set the properties on the TextLayoutBuilder:
TextLayoutBuilderbuilder = newTextLayoutBuilder()
.setText("TextLayoutBuilder makes life easy")
.setTextColor(Color.BLUE)
.setWidth(400/*, MEASURE_MODE_EXACTLY */);
  1. Call build() on the builder to get a Layout:
Layoutlayout = builder.build();
  1. Use the Layout in your code:
publicclassCustomViewextendsView {
privateLayoutlayout;
publicCustomView(Contextcontext) {
super(context);
}
publicvoidsetLayout(Layoutlayout) {
this.layout = layout;
}
@OverrideprotectedvoidonDraw(Canvascanvas) {
super.onDraw(canvas);
// Draw the layout.layout.draw(canvas);
}
}

Additional Usage

  1. Cache the layouts for commonly used strings by turning on caching in the TextLayoutBuilder.
textLayoutBuilder.setShouldCacheLayout(true);
  1. Glyph warming provides significant performance boost for large blurbs of text. Turn this on and pass in a GlyphWarmer for the TextLayoutBuilder.
textLayoutBuilder
.setShouldWarmText(true)
.setGlyphWarmer(newGlyphWarmerImpl());
  1. Import a style defined in XML into a TextLayoutBuilder object.
ResourceTextLayoutHelper.updateFromStyleResource(
textLayoutBuilder, // builder objectcontext, // Activity contextresId); // style resource id

License

TextLayoutBuilder is Apache-2-licensed.

About

An Android library that allows you to build text layouts more easily.

Resources

Code of conduct

Contributing

Security policy

Stars

1.5k stars

Watchers

47 watching

Forks

Releases

Packages

Used by

Contributors

Languages