赠人玫瑰,手留余香,,,
昨天的项目中做到了一个生成图片打印的功能,其中用到了一个StaticLayout 这么一个Layout,在此记录下,希望能稍微对需要的小伙伴们有点帮助。
StaticLayout是一个 可以实现 自动换行的Layout,看别人说的,TextView的自动换行也是通过StaticLayout来实现的(只是看别人这么写,我并不知道)。然后如果我们可以在自定义view中通过这个Layout来实现自动换行,虽然简单,但是实用性大大的有!
StaticLayout的功能在其构造方法中体现的淋漓尽致,大家看下面代码的注释就懂了
StaticLayout(
CharSequence source, //需要分行的字符串
int bufstart, //分行的字符串从第几的位置开始
int bufend, //分行的字符串从第几的位置结束
TextPaint paint,
int outerwidth, //宽度,字符串超出宽度时自动换行
Alignment align, //有ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE 三种
float spacingmult, //相对行间距,相对字体大小,1.5f表示行间距为1.5倍的字体高度
float spacingadd,. //在基础行距上添加多少实际行间距等于这两者的和。
boolean includepad,
TextUtils.TruncateAt ellipsize, //从什么位置开始省略
int ellipsizedWidth //超过多少开始省略需要指出的是这layout是默认画在Canvas的(0,0)点的,如果需要调整位置只能在draw前移Canvas的起始坐标canvas.translate(x,y);
以上是StaticLayoutd 构造方法的介绍,抄过来的,感谢