android 使用canvas画字符时,常常遇到字符很长,不会换行的问题.
使用canvas画字符时,常常遇到字符很长,不会换行的问题.
解决办法:
使用StaticLayout这个类.
mCurrentPaint = new TextPaint();
mCurrentPaint.setColor(Color.GREEN);
mCurrentPaint.setTextAlign(Align.CENTER);
mCurrentPaint.setTextSize(30);
StaticLayout currentLayout = newStaticLayout(currentLine, mCurrentPaint, mViewWidth / 2,
Alignment.ALIGN_NORMAL, 1.5f, 0f, false);
canvas.translate(mViewWidth / 2, mViewHeight / 2);
currentLayout.draw(canvas);
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.超过多少开始省略
需要指出的是这个layout是默认画在Canvas的(0,0)点的,如果需要调整位置只能在draw之前移Canvas的起始坐标
canvas.translate(x,y);
更多相关文章
- 分支和循环(二)(零基础学习C语言)
- 转载:Android(安卓)常用代码集合
- Android(安卓)Toast提示封装实例代码
- android中JSON的理解与解析
- 拆解Google Play Services 4.4,猜想Google I/O 2014的新动向,Andro
- android状态栏右上角增加图标的方法
- Android(安卓)- Intent广播(broadcast)
- java虚拟机理解
- SQLiteDatabase中的query方法,里面有个用占位符代替的参数,不错