imagefont.java

来自「<j2me 开发精解> 詹建光著 里所有的源码。对J2me的开发相当」· Java 代码 · 共 45 行

JAVA
45
字号
package com.j2medev.chapter5.utility;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class ImageFont {
    Sprite sprite;
    
    int width, height;
    
    int[] charhash;
    
    public ImageFont(Image img, int width, int height, char[] chars) {
        sprite = new Sprite(img, width, height);
        this.width = width;
        this.height = height;
        charhash = new int[128];
        for (int i = 0; i < charhash.length; i++) {
            charhash[i] = -1;
        }
        Character c;
        for (int i = 0; i < chars.length; i++) {
            c = new Character(chars[i]);
            charhash[c.hashCode()] = i;
        }
    }
    
    public void drawChar(Graphics g, char ch, int x, int y) {
        Character c = new Character(ch);
        int hashcode = c.hashCode();
        sprite.setPosition(x, y);
        if (hashcode >= 0) {
            sprite.setFrame(charhash[hashcode]);
            sprite.paint(g);
        }
    }
    
    public void drawString(Graphics g, String str, int x, int y) {
        int length = str.length();
        for (int i = 0; i < length; i++) {
            drawChar(g, str.charAt(i), x + width * i, y);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?