您的位置:首页 > 其它

j2me在Canvas上绘制大量文本自动换行的实现

2010-08-19 00:04 736 查看
在网上看见不少关于这个内容的,这是我改进后的方法。



/**
* 绘制文本(自动换行),文本中可以有回车符 /n 强制换行
* @param g
* @param str 文本内容
* @param ft 文本字体
* @param x 文本起始位置X坐标
* @param y 文本起始位置Y坐标
* @param width 显示区域宽度
*/
public static void drawText(Graphics g, String str, Font ft, int x, int y, int width) {
g.setFont(ft);
int height = ft.getHeight();
int lines = 0;
int start = 0;
String sub;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i) == '/n') {
sub = str.substring(start, i);
g.drawString(sub, x, y + lines * height, 0);
start = i + 1; //跳过回车符
i++;
lines++;
}
else if (ft.substringWidth(str, start, i - start) > width) {
sub = str.substring(start, i);
g.drawString(sub, x, y + lines * height, Const.LT);
start = i;
lines++;
}
}
g.drawString(str.substring(start, str.length()), x, y + lines * height, 0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: