TextLayoutBuilder
使用和 builder 模式来配置创建 Layout
所需的参数。这个 Builder 类和 TextView
的很相似。调用 build()
,
TextLayoutBuilder
即可根据设定的参数创建一个文本 Layout
。
Layout layout = new TextLayoutBuilder() .setTextAppearance(context, resId) .setText("TextLayoutBuilder makes life easy") .setWidth(400 /*, MEASURE_MODE_EXACTLY */) .build();
TextLayoutBuilder
使用 builder 模式配置创建 Layout
所需的参数,设置 StaticLayout
参数的日子一动不复返了。
调用 build()
,对于一样的参数,将会返回同一个 Layout
,对于通用 / 常用的文字布局,这减少了重复调用的消耗。
对于 4.0+ 设备, TextLayoutBuilder 可预热 FreeType 字体的缓存。TextLayoutBuilder
在一个后台线程将这些图形绘制到一张图片上,这样可预热图片减少之后的渲染时间。
build.gradle
:
compile 'com.facebook.fbui.textlayoutbuilder:textlayoutbuilder:1.0.0'
<dependency> <groupId>com.facebook.fbui.textlayoutbuilder</groupId> <artifactId>textlayoutbuilder</artifactId> <version>1.0.0</version> <typen>aar</type> </dependency>
TextLayoutBuilder
设置参数:
TextLayoutBuilder builder = new TextLayoutBuilder() .setTextAppearance(context, resId) .setText("TextLayoutBuilder makes life easy") .setWidth(400);
build()
得到一个 Layout
:
Layout layout = builder.build();
Layout
:
layout.draw(canvas);
TextLayoutBuilder
:
mTextLayoutBuilder.setShouldCacheLayout(true);
TextLayoutBuilder
传入一个
GlyphWarmer
:
mTextLayoutBuilder .setShouldWarmText(true) .setGlyphWarmer(new GlyphWarmerImpl());
TextLayoutBuilder
指定一个 XML 文件,可在这个 XML 文件中定义好样式:
ResourceTextLayoutHelper.updateFromStyleResource( mTextLayoutBuilder, mContext, resId);