mTextPaint = new TextPaint();^M
mTextPaint.setColor(this.getCurrentTextColor());^M
mTextPaint.setTextSize(getTextSize());^M
+ StaticLayout layoutTop = new StaticLayout(mTxSpeed, mTextPaint, canvas.getWidth(), Alignment.ALIGN_LEFT, 0.0f, 0.0f,
+ canvas.translate((float) (0.0), (float) (2.0));^M
+ layoutTop.draw(canvas);^M
+ StaticLayout layoutBottom = new StaticLayout(mRxSpeed, mTextPaint, canvas.getWidth(), Alignment.ALIGN_LEFT, 0.0f, 0.
+ canvas.translate((float) (0.0), (float) (getHeight() / 2 - 2.0));^M
+ layoutBottom.draw(canvas);^M
androidStaticLayout参数解释
StaticLayout(CharSequence source, int bufstart, int bufend,
TextPaint paint, int outerwidth,
Alignment align,
float spacingmult, float spacingadd,
boolean includepad,
TextUtils.TruncateAt ellipsize, intellipsizedWidth)
1.需要分行的字符串
2.需要分行的字符串从第几的位置开始
3.需要分行的字符串到哪里结束
4.画笔对象
5.layout的宽度,字符串长度超出给定宽度时自动换行。
6.layout的对其方式,有ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE 三种。
7.相对行间距,相对字体大小,1.5f表示行间距为1.5倍的字体高度。
8.在基础行距上添加多少
实际行间距等于这两者的和。
9.是否预留上下的空间以预防字体超出边界显示不全
10.从什么位置开始省略
11.超过多少开始省略
注意:
1.需要指出的是这个layout是默认画在Canvas的(0,0)点的,如果需要调整位置只能在draw之前移Canvas的起始坐标
canvas.translate(x,y);
2.当字符串中用空格时字符串也会自动换行;(可以根据业务需求把空格换成其他的字符代替比如“/”,":" 等)