MIDP中一个简单的折行文本绘制办法
2008-02-23 09:24:23来源:互联网 阅读 ()
- import Javax.microedition.lcdui.Font;
- import javax.microedition.lcdui.Graphics;
- /**
- * GraphicsUtil
- *
- * @author Jagie
- *
- */
- public class GraphicsUtil {
- /**
- * 在制定矩形内,绘制折行文本,超出矩形范围的字符不显示
- * @param src 文本字串
- * @param g Graphics对象
- * @param x 矩形左上角x坐标
- * @param y 矩形左上角y坐标
- * @param w 矩形宽度
- * @param h 矩形高度
- * @param leftMargin 左边矩
- * @param topMargin 上边距
- * @param isVTight 行间距是否紧凑
- * @param fontColor 文字颜色
- * @param font 绘制所用字体
- */
- public static final void drawWrapString(String src, Graphics g, int x, int y, int w,
- int h, int leftMargin,int topMargin, boolean isVTight, int fontColor, Font font) {
- g.setFont(font);
- g.setColor(fontColor);
- int count = src.length();
- int curCharIndex = 0;
- int curX = x leftMargin;
- int curY = y topMargin;
- int vDelta=font.getHeight();
- if(isVTight){
- vDelta=font.getBaselinePosition();
- }
- while (curCharIndex < count) {
- char c = src.charAt(curCharIndex);
- if (c == '\n') {
- curX = x leftMargin;
- curY = vDelta;
- curCharIndex ;
- continue;
- } else if (c == '\t') {
- // 相当于2个空格
- curX = font.charWidth(' ')*2;
- curCharIndex ;
- continue;
- }
- if (curX font.charWidth(c) < x w) {
- g.drawChar(c, curX, curY, Graphics.LEFT | Graphics.TOP);
- curCharIndex ;
- curX = font.charWidth(c);
- } else {
- //考虑换行
- if(curY 2*font.getBaselinePosition()<y h){
- curY = vDelta;
- curX = x leftMargin;
- g.drawChar(c, curX, curY, Graphics.LEFT | Graphics.TOP);
- curCharIndex ;
- curX = font.charWidth(c);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:如何在MIDP中实现图片放缩
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash