Build text Layouts easily on Android.
Layout
s easily.Layout
s.Layout
s of commonly used strings.If using Gradle, add this to your build.gradle
:
compile 'com.facebook.fbui.textlayoutbuilder:textlayoutbuilder:1.5.0'
or, if using Maven:
<dependency>
<groupId>com.facebook.fbui.textlayoutbuilder</groupId>
<artifactId>textlayoutbuilder</artifactId>
<version>1.5.0</version>
<type>aar</type>
</dependency>
Set the properties on the TextLayoutBuilder
:
TextLayoutBuilder builder = new TextLayoutBuilder()
.setText("TextLayoutBuilder makes life easy")
.setTextColor(Color.BLUE)
.setWidth(400 /*, MEASURE_MODE_EXACTLY */);
Call build()
on the builder to get a Layout
:
Layout layout = builder.build();
Use the Layout
in your code:
public class CustomView extends View {
private Layout layout;
public CustomView(Context context) {
super(context);
}
public void setLayout(Layout layout) {
this.layout = layout;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Draw the layout.
layout.draw(canvas);
}
}
Cache the layouts for commonly used strings by turning on caching in the TextLayoutBuilder
.
textLayoutBuilder.setShouldCacheLayout(true);
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(new GlyphWarmerImpl());
Import a style defined in XML into a TextLayoutBuilder
object.
ResourceTextLayoutHelper.updateFromStyleResource(
textLayoutBuilder, // builder object
context, // Activity context
resId); // style resource id
TextLayoutBuilder is Apache-2-licensed.