读书人

高分求解:在j2ME字体大小的有关问题

发布时间: 2012-12-18 12:43:41 作者: rapoo

高分求解:在j2ME字体大小的问题?
在j2me中的函数getFont(int face, int style, int size)是用来设置字体的,
其中的size 为字体的大小,但J2ME中只提供了如下三种size:
Font.SIZE_SMALL
Font.SIZE_MEDIUM
Font.SIZE_LARGE

请问在j2me中想实现多种大小的字体该怎么去实现?不仅仅是以上j2me API中自带的三种字体大小;


[最优解释]
点阵字模库你可以到网上下载工具自己生成,不过生成的字模可能不是很规范;
好的字模生成库工具可能要购买!
[其他解释]
可以去找些点阵字的资料
下边有个例子:
http://www.blogjava.net/gooogle/archive/2008/02/16/180179.html
[其他解释]


关于点阵字库在J2ME的实现。
最近在学习C的过程中无意发现了点阵字库的东西。整理了下,在J2ME实现了下相关的算法。
下面是DOS的一段话
对于使用少量的汉字图形程序,完全没有必要带巨大的汉字库来运行,
只要内存允许,你可以把汉字字模直接定义为数组的信息存储在EXE文
件里。通过这个工具,你可以把单个字模信息直接取出来,然后在源代
码中粘贴。该工具的强大在于不仅可以生成12×12、16×16宋体这些
存在于DOS字库的字模,而且可以生成16×16楷体、黑体甚至自定义字
体的字模,而且可以提供6种字模大小供您选择并即时预览效果!对使
用少量汉字的图形编程能够提供极大方便。

相对于绘制这些字体的J2ME函数是:
首先,我们要通过工具来生成点阵字库的GB2312字模,然后在图像中绘制出来,下面我给出一些字体的字模,
废话少说,具体看例子吧。有啥不明白,或者需要探讨的,到wuhua.3geye.net。上面有我的联系方式。

import javax.microedition.midlet.*;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Display;

public class FontMIDlet extends MIDlet {
public FontMIDlet() {
}


protected void destroyApp(boolean _boolean) throws
MIDletStateChangeException {
}


protected void pauseApp() {
}

protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(new FontCanvas());
}

char yi12[] = {
/* 以下是 '1' 的 12点阵宋体 字模,24 byte */
0x00, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x3C, 0x00,
0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
0x0C, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
};

char er12[] = {
/* 以下是 '2' 的 12点阵宋体 字模,24 byte */
0x00, 0x00, 0x3E, 0x00, 0x63, 0x00, 0x03, 0x00,
0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00,
0x63, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
};

char dian12[] = {
/* 以下是 '点' 的 12点阵宋体 字模,24 byte */
0x04, 0x00, 0x07, 0xC0, 0x04, 0x00, 0x04, 0x00,
0x3F, 0x80, 0x20, 0x80, 0x20, 0x80, 0x3F, 0x80,
0x00, 0x00, 0x49, 0x40, 0xC9, 0x20, 0x00, 0x00,
};

char zhen12[] = {
/* 以下是 '阵' 的 12点阵宋体 字模,24 byte */
0xF2, 0x00, 0x9F, 0xE0, 0x92, 0x00, 0xA5, 0x00,
0xA5, 0x00, 0x97, 0xE0, 0x91, 0x00, 0xB1, 0x00,
0x8F, 0xE0, 0x81, 0x00, 0x81, 0x00, 0x00, 0x00,
};

char song16[] = {
/* 以下是 '宋' 的 16点阵宋体 字模,32 byte */
0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x04,
0x81, 0x08, 0x01, 0x00, 0x7F, 0xFC, 0x03, 0x80,
0x05, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10,
0x21, 0x0E, 0x41, 0x04, 0x01, 0x00, 0x00, 0x00,


};

char ti16[] = {
/* 以下是 '体' 的 16点阵宋体 字模,32 byte */
0x10, 0x40, 0x18, 0x40, 0x10, 0x40, 0x20, 0x40,
0x37, 0xFC, 0x60, 0xC0, 0xA0, 0xE0, 0x21, 0x60,
0x21, 0x50, 0x22, 0x48, 0x24, 0x4E, 0x2B, 0xF4,
0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x00,
};

char zi24[] = {
/* 以下是 '字' 的 24点阵隶书 字模,72 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x1C, 0x10,
0x1F, 0xFF, 0xF0, 0x18, 0x00, 0x30, 0x18, 0xFF,
0x10, 0x09, 0xC3, 0x90, 0x00, 0x3C, 0x00, 0x00,
0x1C, 0x00, 0x3F, 0xFF, 0xFE, 0x7E, 0x0C, 0xFE,
0x00, 0x1C, 0x04, 0x00, 0x1C, 0x00, 0x04, 0x3C,
0x00, 0x03, 0xF8, 0x00, 0x00, 0xE0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

char mo24[] = {
/* 以下是 '模' 的 24点阵楷体_GB2312 字模,72 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00,
0x30, 0x03, 0x0C, 0x20, 0x03, 0x04, 0x3C, 0x02,
0x07, 0xE0, 0x02, 0x1C, 0x40, 0x02, 0x00, 0x40,
0x03, 0xC0, 0x70, 0x7E, 0x1F, 0x98, 0x02, 0x08,
0x10, 0x06, 0x0F, 0x90, 0x07, 0x88, 0x10, 0x0A,
0xCB, 0xE0, 0x1A, 0x05, 0x00, 0x12, 0x01, 0x1E,
0x22, 0x0F, 0xFE, 0x42, 0x32, 0x80, 0x02, 0x02,
0x40, 0x02, 0x04, 0x60, 0x02, 0x0C, 0x30, 0x02,
0x18, 0x1C, 0x02, 0x20, 0x0F, 0x02, 0x00, 0x00,
};

char guan48[] = {
/* 以下是 '灌' 的 48点阵黑体 字模,288 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x38, 0x00,
0x03, 0x00, 0x03, 0xC0, 0x38, 0x00, 0x07, 0x80,
0x03, 0xC0, 0x38, 0x00, 0x07, 0xC0, 0x03, 0xC0,
0x38, 0x00, 0x03, 0xF1, 0xFF, 0xFF, 0xFF, 0xFC,
0x01, 0xF9, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x79,
0xF1, 0xC0, 0x39, 0xFC, 0x00, 0x30, 0x01, 0xC0,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xF0, 0xFF, 0xE0, 0x00, 0x00, 0xFF, 0xF0,
0xFF, 0xE0, 0x00, 0x00, 0xE0, 0x70, 0xE0, 0xE0,
0x0E, 0x00, 0xE0, 0x70, 0xE0, 0xE0, 0x1F, 0x80,
0xE0, 0x70, 0xE0, 0xE0, 0x1F, 0xE0, 0xFF, 0xF0,
0xFF, 0xE0, 0x07, 0xF0, 0xFF, 0xF0, 0xFF, 0xE0,
0x01, 0xF0, 0xFF, 0xF1, 0xFF, 0xE0, 0x00, 0x60,
0x08, 0x07, 0x00, 0x00, 0x00, 0x20, 0x1E, 0x03,
0x80, 0x00, 0x00, 0x00, 0x1E, 0x03, 0x00, 0x00,
0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF0, 0x00, 0x00,


0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x3F, 0xFF,
0xFF, 0xF0, 0x00, 0x00, 0x7C, 0x03, 0x80, 0x00,
0x00, 0x20, 0x7C, 0x03, 0x80, 0x00, 0x00, 0x70,
0xFC, 0x03, 0x80, 0x00, 0x00, 0x71, 0xFF, 0xFF,
0xFF, 0xE0, 0x00, 0x73, 0xFF, 0xFF, 0xFF, 0xE0,
0x00, 0xF3, 0xBC, 0x03, 0x80, 0x60, 0x00, 0xE3,
0xBC, 0x03, 0x80, 0x00, 0x01, 0xE1, 0x3C, 0x03,
0x80, 0x00, 0x01, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0,
0x01, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0, 0x03, 0xC0,
0x3F, 0xFF, 0xFF, 0xE0, 0x03, 0x80, 0x3C, 0x03,
0x80, 0x00, 0x07, 0x80, 0x3C, 0x03, 0x80, 0x00,
0x0F, 0x80, 0x3C, 0x03, 0x80, 0x00, 0x0F, 0x00,
0x3F, 0xFF, 0xFF, 0xF8, 0x1F, 0x00, 0x3F, 0xFF,
0xFF, 0xF8, 0x1F, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x06, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

char guan64[] = {
/* 以下是 '灌' 的 64点阵方正黄草简体 字模,512 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0xCF, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x07, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x03, 0xF8, 0x07, 0x80, 0x00,
0x00, 0x04, 0x00, 0x03, 0xF8, 0x0F, 0x00, 0x00,
0x00, 0x06, 0x00, 0x03, 0xF0, 0x18, 0x00, 0x00,
0x00, 0x07, 0x00, 0x01, 0xF0, 0x30, 0x00, 0x00,
0x00, 0x07, 0x80, 0x01, 0xF0, 0x00, 0x00, 0x00,
0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x00, 0x00,
0x00, 0x03, 0xE0, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00,
0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00,
0x00, 0x07, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00,
0x00, 0x0F, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00,
0x00, 0x0C, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00,
0x00, 0x08, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x08, 0x00, 0x0F, 0xF0, 0x07, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x3F, 0x40, 0x0F, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x18, 0x80, 0x3F, 0x80, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0x0F, 0xFC, 0x00, 0x00,
0x00, 0x00, 0x00, 0x06, 0x1F, 0xF8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0E, 0x23, 0xF0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0E, 0xC3, 0xE0, 0x00, 0x00,


0x00, 0x80, 0x00, 0x1F, 0x87, 0xC0, 0x00, 0x00,
0x00, 0xC0, 0x00, 0x1F, 0x8F, 0x87, 0x80, 0x00,
0x00, 0x70, 0x02, 0x0F, 0x9F, 0x0F, 0x80, 0x00,
0x00, 0x7C, 0x02, 0x0F, 0xBE, 0x1C, 0xE0, 0x00,
0x00, 0x3E, 0x04, 0x07, 0xFC, 0x18, 0xE0, 0x00,
0x00, 0x3E, 0x04, 0x03, 0xF0, 0x1B, 0xC0, 0x00,
0x00, 0x3E, 0x0C, 0x01, 0xE0, 0x1F, 0x80, 0x00,
0x00, 0x1C, 0x08, 0x03, 0xC0, 0x1F, 0x00, 0x00,
0x00, 0x18, 0x18, 0x07, 0x80, 0x7C, 0x00, 0x00,
0x00, 0x18, 0x38, 0x0F, 0x01, 0xFC, 0x00, 0x00,
0x00, 0x18, 0x30, 0x1F, 0x07, 0xDC, 0x00, 0x00,
0x00, 0x30, 0x70, 0x3F, 0x1F, 0x0C, 0x00, 0x00,
0x00, 0x30, 0x70, 0x7B, 0x38, 0x0C, 0x00, 0x00,
0x00, 0x30, 0xE0, 0xF3, 0x60, 0x0C, 0x00, 0x00,
0x00, 0x30, 0xE1, 0xE3, 0x00, 0x0E, 0x00, 0x00,
0x00, 0x71, 0xC3, 0xE3, 0x00, 0x3E, 0x00, 0x00,
0x00, 0x71, 0xC3, 0xC3, 0x00, 0x6E, 0x00, 0x00,
0x00, 0x73, 0x83, 0xC3, 0x00, 0xCE, 0x00, 0x00,
0x00, 0x77, 0x80, 0x07, 0x00, 0x9E, 0x00, 0x00,
0x00, 0x77, 0x80, 0x07, 0x00, 0x9C, 0x00, 0x00,
0x00, 0x7F, 0x00, 0x07, 0x00, 0x9C, 0x00, 0x00,
0x00, 0x7F, 0x00, 0x07, 0x00, 0xBC, 0x00, 0x00,
0x00, 0x7E, 0x00, 0x07, 0x00, 0xFC, 0x00, 0x00,
0x00, 0x7E, 0x00, 0x07, 0x00, 0xFC, 0x00, 0x00,
0x00, 0x7C, 0x00, 0x07, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x7C, 0x00, 0x06, 0x00, 0xDE, 0x00, 0x00,
0x00, 0xFC, 0x00, 0x06, 0x00, 0x5C, 0x00, 0x00,
0x01, 0xF8, 0x00, 0x06, 0x00, 0x78, 0x00, 0x00,
0x00, 0xF8, 0x00, 0x0E, 0x00, 0x78, 0xF8, 0x00,
0x00, 0xF8, 0x00, 0x0E, 0x00, 0xFF, 0xF8, 0x00,
0x00, 0x78, 0x00, 0x0E, 0x01, 0xFF, 0xB0, 0x00,
0x00, 0x70, 0x00, 0x06, 0x01, 0xF0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};



[其他解释]

char matarray16k[] = {
/* 以下是 '该' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08, 0x00,
0x00, 0x0C, 0x03, 0xF0, 0x18, 0x50, 0x30, 0x90,
0x11, 0x70, 0x11, 0xA8, 0x14, 0x58, 0x18, 0xB0,
0x13, 0x70, 0x04, 0x8C, 0x03, 0x04, 0x00, 0x00,
/* 以下是 '程' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0C, 0xFC,
0x3C, 0x88, 0x08, 0x88, 0x0E, 0x70, 0xF8, 0x18,


0x18, 0xE0, 0x1E, 0x20, 0x28, 0xF0, 0xC8, 0x20,
0x08, 0x3E, 0x09, 0xC0, 0x08, 0x00, 0x00, 0x00,
/* 以下是 '序' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x80, 0x00, 0x90, 0x0B, 0xE0,
0x0C, 0x00, 0x0B, 0xF0, 0x08, 0x40, 0x10, 0x80,
0x11, 0xFC, 0x1E, 0x88, 0x20, 0x80, 0x20, 0x80,
0x40, 0x80, 0x80, 0x80, 0x01, 0x80, 0x00, 0x80,
/* 以下是 '已' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x40,
0x00, 0xC0, 0x10, 0x80, 0x10, 0x80, 0x1F, 0x00,
0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x10, 0x04,
0x08, 0x06, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '集' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x02, 0x80, 0x04, 0x10, 0x07, 0xE0,
0x0C, 0xE0, 0x17, 0x80, 0x05, 0xC0, 0x06, 0xB0,
0x0B, 0x40, 0x08, 0x9C, 0x1F, 0xE0, 0x23, 0x40,
0x05, 0x30, 0x09, 0x1C, 0x31, 0x00, 0x00, 0x00,
/* 以下是 '成' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x03, 0x00, 0x01, 0x30, 0x01, 0x10,
0x01, 0x00, 0x01, 0xC0, 0x1E, 0x80, 0x10, 0x90,
0x12, 0x90, 0x1E, 0x60, 0x12, 0x60, 0x22, 0x60,
0x26, 0x92, 0x45, 0x0A, 0x00, 0x06, 0x00, 0x00,
/* 以下是 '小' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x18,
0x11, 0x0C, 0x21, 0x04, 0x21, 0x00, 0x01, 0x00,
0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '型' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x08, 0x03, 0x08, 0x1E, 0x28,
0x0A, 0x48, 0x0F, 0xC8, 0x7A, 0x48, 0x0A, 0x08,
0x12, 0x18, 0x21, 0x08, 0x01, 0x40, 0x07, 0x80,
0x01, 0x00, 0x01, 0xF8, 0x3E, 0x00, 0x00, 0x00,
/* 以下是 '汉' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x11, 0xF0,
0x02, 0x20, 0x04, 0x20, 0x62, 0x40, 0x29, 0x40,
0x10, 0x80, 0x11, 0x40, 0x22, 0x60, 0x64, 0x38,
0x78, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '字' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x01, 0x00, 0x01, 0x10, 0x11, 0xF8,
0x1E, 0x10, 0x20, 0xC0, 0x07, 0xC0, 0x00, 0x80,
0x01, 0x38, 0x1F, 0xC0, 0x20, 0x80, 0x00, 0x80,
0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00,
/* 以下是 '库' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0xF0,
0x0E, 0x80, 0x08, 0xF0, 0x0B, 0x00, 0x09, 0x40,
0x0A, 0x78, 0x13, 0xC0, 0x10, 0x7E, 0x2F, 0xC0,
0x20, 0x40, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40,


/* 以下是 ',' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00,
/* 以下是 '可' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
0x7F, 0x40, 0x00, 0x20, 0x07, 0x20, 0x19, 0x20,
0x12, 0x20, 0x0E, 0x40, 0x00, 0x40, 0x00, 0x40,
0x00, 0x40, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x00,
/* 以下是 '脱' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3D, 0x90,
0x24, 0x80, 0x24, 0x70, 0x25, 0x90, 0x25, 0x20,
0x35, 0xE0, 0x24, 0xA0, 0x24, 0xC0, 0x45, 0x42,
0x4E, 0x22, 0x88, 0x3E, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '离' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x03, 0x00, 0x01, 0x30, 0x1F, 0xC0,
0x00, 0xA0, 0x0F, 0xA0, 0x0A, 0xA0, 0x0F, 0xE0,
0x09, 0x00, 0x03, 0xF8, 0x1E, 0x88, 0x17, 0xC8,
0x14, 0x88, 0x10, 0x70, 0x10, 0x10, 0x00, 0x00,
/* 以下是 '文' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00,
0x00, 0x70, 0x07, 0x80, 0x18, 0x80, 0x01, 0x80,
0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0xC0,
0x38, 0x70, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '件' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x08, 0x40, 0x0C, 0x40, 0x08, 0x40,
0x11, 0x40, 0x11, 0xF0, 0x32, 0x40, 0x50, 0x44,
0x91, 0xF8, 0x12, 0x40, 0x10, 0x40, 0x10, 0x40,
0x10, 0x40, 0x10, 0x40, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '的' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0C, 0x20,
0x08, 0x40, 0x10, 0x48, 0x1E, 0xFC, 0x23, 0x0C,
0x24, 0x8C, 0x3C, 0x48, 0x24, 0x08, 0x24, 0x08,
0x3C, 0x08, 0x00, 0x38, 0x00, 0x18, 0x00, 0x00,
/* 以下是 '支' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0xE0, 0x0F, 0x00, 0x01, 0x00, 0x01, 0xC0,
0x0E, 0x40, 0x08, 0x80, 0x06, 0x80, 0x01, 0x00,
0x02, 0xC0, 0x0C, 0x78, 0x30, 0x1C, 0x00, 0x00,
/* 以下是 '持' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20,
0x08, 0x70, 0x3C, 0x20, 0x08, 0x3E, 0x0F, 0xD0,
0x08, 0x1C, 0x3B, 0xF0, 0xC9, 0x10, 0x08, 0x90,
0x08, 0x10, 0x18, 0x10, 0x00, 0x30, 0x00, 0x00,
/* 以下是 '运' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x80,


0x00, 0x00, 0x00, 0x78, 0x27, 0x80, 0x71, 0x80,
0x21, 0x20, 0x22, 0xF0, 0x23, 0x10, 0x20, 0x00,
0x5F, 0x80, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
/* 以下是 '行' 的 16点阵楷体_GB2312 字模,32 byte */
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x38,
0x10, 0x40, 0x24, 0x00, 0x04, 0x1F, 0x0B, 0xF0,
0x18, 0x10, 0x28, 0x10, 0xC8, 0x10, 0x08, 0x10,
0x08, 0x10, 0x08, 0x70, 0x00, 0x20, 0x00, 0x00,
};


void drawFont(Graphics g) {
int i, j;

drawmat(yi12, g,12, 50, 20, 0xFFFFFF);
drawmat(er12, g,12, 50, 50, 0xFFFFFF);
drawmat(dian12, g,12, 50, 80, 0xFFFFFF);
drawmat(zhen12, g,12, 50, 110, 0xFFFFFF);
drawmat(song16, g,16, 50, 130, 0xFF0000);
drawmat(ti16, g,16, 50, 150, 0xFF0000);
drawmat(zi24, g,24, 50, 180, 0x0000FF);
drawmat(mo24, g,24, 50, 200, 0x00FF00);
drawmat(guan48, g,48, 50, 250, 0x0000FF);
drawmat(guan64, g,64, 50, 300, 0xFF0000);

// for (i = 0; i < 15; i++) {
// drawmat(matarray16k + i*32, g,16, 200 + i * 15, 200, 0xFFFFFF);
// }
// drawmat(matarray16k + 8*32, g,16, 200 + i * 15, 200, 0xFFFFFF);
// drawmat(matarray16k + 9*32,g, 16, 200 + (++i) * 15, 200, 0xFFFFFF);
// drawmat(matarray16k + 10 * 32, g,16, 200 + (++i) * 15, 200, 0xFFFFFF);
// for (i = 18; i < 25; i++) {
// drawmat(matarray16k + (i - 3) * 32, 16, 200 + i * 15, 200, 0xFFFFFF);
// }
}


void drawmat(char[] mat, Graphics g,int matsize, int x, int y, int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{
int i, j, k, n;
n = (matsize - 1) / 8 + 1;
for (j = 0; j < matsize; j++) {
for (i = 0; i < n; i++) {
for (k = 0; k < 8; k++) {
if (!((mat[j * n + i] & (0x80 >> k)) == 0)) /*测试为1的位则显示*/
{
g.setColor(color);
g.drawLine(x + i * 8 + k, y + j, x + i * 8 + k, y + j);
// putpixel(x + i * 8 + k, y + j, color);
}
//else
// g.setColor(0xFFFFFF);
}
}
}
}


class FontCanvas extends Canvas {
protected void paint(Graphics g) {
g.setColor(0x0);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
drawFont(g);
}
}

}



给你贴过来
[其他解释]
请问是不是每个汉字都要有个数组字模才能实现呀!那我到哪里去搞这么多的字模吗?
[其他解释]
急啊!自己顶一下!
------其他解决方案--------------------


将字做成图片,根据什么字来画出哪个图?
这个是简单的方法,但是实现就比较麻烦,字少的情况还行!
[其他解释]
如果字体不多的话,做成图片比较简单一些
[其他解释]
我看了下字库,很多都要几百K的,相当于自己实现的话,程序无故就要大上几百K,对于一般小程序不太适合吧。而且使用点阵字库,每个字都是通过循环数组画出来的,是不是画一屏幕的字浪费的资源要很多(我不清楚j2me自带的字是不是也是这么画出来的,没空)。
所以一般小程序自己实现貌似不太必要
[其他解释]
只能用点阵字库的办法了吗?这个似乎有点麻烦,为了在手机显示几个不同大小的字而无辜增加一套字库,而且点阵字库我怎么整出来呀!各位专家有没有更好的办法?
[其他解释]
是的,字体自适应屏幕大小就碰到这问题,结果只能一款机型一款机型的测试,满足部分机型
[其他解释]
我能想到的方法有三:
1.用图片
2.用点阵字库
3.双缓冲原理,对屏幕上的图像进行缩放后显示。


[其他解释]

引用:
我能想到的方法有三:
1.用图片
2.用点阵字库
3.双缓冲原理,对屏幕上的图像进行缩放后显示。


3的方法到是不错,不会额外加大包大小。但是画的内容多会不会很费资源。。。
[其他解释]
我能想到的方法有三:
1.用图片
2.用点阵字库
3.双缓冲原理,对屏幕上的图像进行缩放后显示。

=============================================

看来这三个方法中没有省油的灯呀!
[其他解释]
引用:
3的方法到是不错,不会额外加大包大小。但是画的内容多会不会很费资源。。。



因为耗资源的主要是图像缩放,而图像缩放和屏幕尺寸相关
所以总要是看屏幕的尺寸,而与绘制的内容多少关系不大
[其他解释]
点阵createRGB成图片缓冲存在内存里,只有第一次调用时创建Image,以后直接使用这个图片就行了
[其他解释]
哪位有点阵字库集,哪怕是只有英文的也行!
[其他解释]
大篇的网页文章浏览时,用图片代替文件是不是很慢?
我想根据你们上面提供的方法把英文的点阵数组画出来应该比较合适点;
[其他解释]
英文的不就26个字母...那还不如直接用图片...
[其他解释]
你文章全是英文的?
答:文章有可能全是英文,有可能全是中,还有可能中英混合,网页浏览内容谁也不能确定具体内容;

我是说既然你就26个字母,你用字库和用图片来处理,效果差不多。
答:应该还是有差别的吧!你说在j2me里面去画一个图片快,还是画一个点阵字库快吗?

网络数据传输和用图片还是用字库没关系。
答:我说的不是数据传输,是最终显示在手机上的效果;
[其他解释]
你文章全是英文的?
我是说既然你就26个字母,你用字库和用图片来处理,效果差不多。
网络数据传输和用图片还是用字库没关系。

[其他解释]
有谁有英文点阵字模库,能否发份给我,可以另外再加分!
要求是:Arial 常规
Arial 粗体
Arial 斜体
Arial 粗斜体
Times New Roman 常规
Times New Roman 粗体
Times New Roman 斜体
Times New Roman 粗斜体
字体大小为8-48


[其他解释]
看看顶贴!
[其他解释]
3q!!!
我来看看嗯嗯
[其他解释]
天哪,我做了个点阵字库,画起来慢得要死,模拟器上都得半天,放到手机上,基本只能出第1行,8点阵和16点阵的。
有什么快的算法吗?


[其他解释]
文字到字模这个过程是如何实现啊,

读书人网 >J2ME开发

热点推荐