⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 custom_font_canvas.java

📁 本光盘是《J2ME无线移动游戏开发》一书的配套光盘
💻 JAVA
字号:
package ch10;

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

//该类实现字体布局的绘制
public class Custom_Font_Canvas
    extends GameCanvas {

  //声明一个Custom_Font对象
  private Custom_Font font;

  //声明一个代表字体高度的short型属性变量
  private short fontHeight;

  //声明一个代表字体宽度的short型属性变量
  private short fontWidth;

  //声明一个代表文本行数的short型属性变量
  private short rows;

  //声明一个代表文本列数的short型属性变量
  private short columns;

  //声明一个代表左右边距的short型属性变量
  private short insetX;

  //声明一个代表上下边距的short型属性变量
  private short insetY;

  //声明一个字符数组存储显示文本内容
  private char[] buffer = {
      'a', 'b', 'c', 'd', 'e', 'f', 'g'};

  //声明上下文对象
  Graphics g;

  /*
   3.构造器
   */
  public Custom_Font_Canvas() throws IOException {

    super(false);
    setTitle("绘制自定义字体实例");
    //获取上下文对象
    g = getGraphics();
    //获取屏幕宽度和高度
    int width = getWidth();
    int height = getHeight();
    //获取字体
    font = Custom_Font.getFont("/icons/font/mono_large.png", Font.SIZE_LARGE,
                               Font.STYLE_PLAIN);
    //获取字体高度和宽度
    fontHeight = (short) font.getHeight();
    fontWidth = (short) font.stringWidth("w");
    //获取显示文本行数和列数
    columns = (short) (width / fontWidth);
    rows = (short) (height / fontHeight);
    //获取上下左右边距
    insetX = (short) ( (width - columns * fontWidth) / 2);
    insetY = (short) ( (height - rows * fontHeight) / 2);
  }

  //启动绘制
  public void start() {
    render(g);
  }

  /*
   4.绘制方法
   */
  void render(Graphics g) {
    //填充背景
    g.setGrayScale(0);
    g.fillRect(0, 0, getWidth(), getHeight());
    //声明一个代表绘制字符索引的变量
    int i;
    //声明一个代表绘制字符的变量
    char b;

    for (int y = 0; y < rows; y++) {
      for (int x = 0; x < columns; x++) {
        i = y * columns + x;
        if (i < buffer.length) {
          b = buffer[i];
          if (b != 0) {
            font.drawChar(g, b,
                          insetX + x * fontWidth, insetY + y * fontHeight,
                          g.TOP | g.LEFT);
          }
        }
      }
    }
    flushGraphics();
  }
}

⌨️ 快捷键说明

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