日期:2014-05-20  浏览次数:20785 次

正在查找 J2ME 汉字字库的项目

MWT - Micro Window Toolkit
http://j2me-mwt.sourceforge.net/

这里的字体,是通过图形来实现的。不适合汉字啊。

?

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

http://www.pstreets.com
这里有个汉字字库,不过,在 N70 上运行出错了。

?

在模拟器上倒是跑起来了。

?

找模拟器的文件目录时,花了好一段时间:

C:\Documents and Settings\Administrator\j2mewtk\2.5.2\appdb\myrms\filesystem

?

?

//------------------------------------------
//                         COPYRIGHT 2010 GUIDEBEE
//                           ALL RIGHTS RESERVED.
//                     GUIDEBEE CONFIDENTIAL PROPRIETARY 
///////////////////////////////////// REVISIONS ////////////////////////////////
// Date       Name                 Tracking #         Description
// ---------  -------------------  ----------         --------------------------
// 25APR2010  James Shen                 	      Initial Creation
////////////////////////////////////////////////////////////////////////////////
//--------------------------------- PACKAGE ------------------------------------
package biz.guidebee.example.drawing2d;

//--------------------------------- IMPORTS ------------------------------------

//import javax.microedition.io.*;
//import javax.microedition.io.*;

import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;

import biz.guidebee.drawing.Color;
import biz.guidebee.drawing.FontEx;
import biz.guidebee.drawing.Pen;
import biz.guidebee.example.Graphics2DMIDlet;
import biz.guidebee.geometry.AffineTransform;
import biz.guidebee.geometry.Rectangle;

//[------------------------------ MAIN CLASS ----------------------------------]
////////////////////////////////////////////////////////////////////////////////
//--------------------------------- REVISIONS ----------------------------------
// Date       Name                 Tracking #         Description
// --------   -------------------  -------------      --------------------------
// 25APR2010  James Shen                 	      Initial Creation
////////////////////////////////////////////////////////////////////////////////
/**
 *  This demo shows font direction and measure string.
 * <p>
 * <hr><b>&copy; Copyright 2010 Guidebee, Inc. All Rights Reserved.</b>
 * @version     1.00, 25/04/10
 * @author      Guidebee, Inc.
 */
public class Fonts extends Graphics2DMIDlet {

    public void startApp() {
        graphics2D.clear(Color.WHITE);
        AffineTransform matrix = new AffineTransform();
        graphics2D.setAffineTransform(matrix);
        try {
        	//FontEx font = FontEx.getSystemFont();
        	
        	FontEx font = new FontEx( this.getClass().getResourceAsStream("songti.fon") );
        	
//        	//String fontName = "file:///root1/fonts/songti.fon";  //模拟器
//        	String fontName = "file://localhost/E:/FONTS/SONGTI.FON"; //N70
//        	StreamConnection fconn = (StreamConnection) Connector.open(fontName);
//        	FontEx font = new FontEx(fconn.openInputStream());
            int fontSize = 32;
            char[] longLine = "汉国".toCharArray();
            //char[] longLine = "hello".toCharArray();
            int stringWidth = font.charsWidth(fontSize, longLine, 0, longLine.length,
                    FontEx.TEXT_DIR_LR);
            int canvasWidth = canvas.getWidth();
            int canvasHeight = canvas.getHeight();

            graphics2D.setDefaultPen(new Pen(Color.BLUE, 1));

            Rectangle rectangle = new Rectangle((canvasWidth - stringWidth) / 2,
                    (canvasHeight - 16) / 2, stringWidth, 16);
            graphics2D.drawRectangle(null, rectangle);
            graphics2D.setTextDirection(FontEx.TEXT_DIR_LR);
            graphics2D.drawChars(font, fontSize, longLine, 0, longLine.length, rectangle.x,
                    rectangle.y + fontSize);
            graphics2D.setDefaultPen(new Pen(Color.GREEN, 1));
            graphics2D.setTextDirection(FontEx.TEXT_DIR_RL);
            graphics2D.drawChars(font, fontSize, longLine, 0, longLine.length, rectangle.x + stringWidth,
                    rectangle.y + fontSize * 2);
            graphics2D.setDefaultPen(new Pen(Color.RED, 1));
            graphics2D.setTextDirection(FontEx.TEXT_DIR_TB);
            graphics2D.drawChars(font, fontSize, longLine, 0, longLine.length, 16,
                    16);


            graphics2D.invalidate();
			
		} catch (Exception e) {
	        try {
	        	FontEx font = FontEx.getSystemFont();
	        	
	            int fontSize = 12;
	            char[] longLine = e.getMessage().toCharArray();
	            int stringWidth = font.charsWidth(fontSize, longLine, 0, longLine.length,
	                    FontEx.TEXT_DIR_LR);
	            int canvasWidth = canvas.getWidth();
	            int canvasHeight = canvas.getHeight();

	            graphics2D.setDefaultPen(new Pen(Color.BLUE, 1));

	            Rectangle rectangle = new Rectangle((canvasWidth - stringWidth) / 2,
	                    (canvasHeight - 16) / 2, stringWidth, 16);
	            graphics2D.drawRectangle(null, rectangle);
	            graphics2D.setTextDirection(FontEx.TEXT_DIR_LR);
	            graphics2D.drawChars(font, fontSize, longLine, 0, longLine.length, rectangle.x,
	                    rectangle.y + fontSize);
	            graphics2D.setDefaultPen(new Pen(Color.GREEN, 1));
	            graphics2D.setTextDirection(FontEx.TEXT_DIR_RL);
	            graphics2D.drawChars(font, fontSize, longLine, 0, longLine.length, rectangle.x + stringWidth,
	                    rectangle.y + fontSize * 2);
	            graphics2D.setDefaultPen(new Pen(Color.RED, 1));
	            graphics2D.setTextDirection(FontEx.TEXT_DIR_TB);
	            graphics2D.drawChars(font, fontSize, longLine, 0, longLine.length, 16,
	                    16);


	            graphics2D.invalidate();
				
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		}
        
    }

   
}
?

?

?

1 楼 zwhc 2010-06-27  
字体
TrueType
http://zh.wikipedia.org/zh-cn/TrueType
TrueType字形数据文件结构的分析
http://www.docin.com/p-23018157.html
关于TrueType字体的结构
http://www.zhaozi.cn/huibian/20080829/121999659545.html
TrueType字体文件
http://blog.csdn.net/zixue_pudn/archive/2010/01/17/5202259.aspx
TrueType(2)
http://blog.chinaunix.net/u3/91477/showart_1839588.html