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);
}
/**
* 绘制文本(自动换行),文本中可以有回车符 /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);
}
相关文章推荐
- Android使用StaticLayout实现文本绘制自动换行
- J2ME简单灵活实现手机中自动换行显示文本
- html5-canvas的绘制文本自动换行
- Canvas的drawText绘制文本不自动换行的解决
- Canvas的drawText绘制文本自动换行(支持设置显示最大行数)
- Android中用StaticLayout实现文本绘制自动换行详解
- Android编程实现canvas绘制饼状统计图功能示例【自动适应条目数量与大小】
- javascript实现的一个自定义长度的文本自动换行的函数。
- j2me文本自动换行
- 在SurfaceView中绘制文本时 无法自动换行问题的解决办法
- div+pre标签的组合实现文本原格式显示与自动换行
- div+css实现文本原格式显示与自动换行
- c#(mobile) 绘制文字自动换行的实现
- 自定义view,实现文本自动换行
- js+html5实现canvas绘制镂空字体文本的方法
- textarea:文本输入区内实现换行、出现横向(水平)滚动条、自动定位到最底部
- js+html5实现canvas绘制镂空字体文本的方法
- GDI+ 绘制多行文本,自动换行。
- d3.js封装文本实现自动换行和旋转平移等功能
- css表格单元格中的长文本如何实现自动换行