Вывод текста нестандартным графическим шрифтом в Java2ME
Разумеется, шрифт придется создать.
Необходимые для вывода текста на графический экран объекты Canvas и Graphics в Java2ME поддерживаются с профиля MIDP1.0, то есть, доступны абсолютно всем телефонам, поддерживающим яву.
А если говорить про вывод текста, то вот рабочий класс, который выводит текст в BufferScreen, а затем этот BufferScreen выводится на экран:
public class MIDPCanvas extends Canvas { // Переменные буферного экрана private Image BufferScreen = null; private Graphics BS = null; private final int SCREEN_WIDTH = 176, SCREEN_HEIGHT = 208; //Здесь размеры экрана для Nokia // Шрифт private static Image bigFont = null; public MIDPCanvas() { // Создаем BufferScreen BufferScreen = Image.createImage(SCREEN_WIDTH, SCREEN_HEIGHT); BS = BufferScreen.getGraphics(); // Грузим Шрифт try { bigFont = Image.createImage("/bfnt.png"); } catch(java.io.IOException e) {} ; // Печатаем строку printString(10,10,"TEST"); } public void paint(Graphics g) { g.setColor(0x000000ff); g.fillRect(0, 0, getWidth(), getHeight()); g.drawImage(BufferScreen, getWidth() / 2, getHeight() / 2, Graphics.VCENTER|Graphics.HCENTER); } // Печать строки protected void printString(int x, int y, String str) { int len = str.length(); for (int i = 0; i < len; i++) { char ch = str.charAt(i); ch -= 32; BS.setClip(x, y , 8, 8); BS.drawImage(bigFont, x - (ch & 7) * 8, y - (ch >>> 3) * 8, Graphics.LEFT|Graphics.TOP); x += 8; } BS.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); } }
Файл bfnt.png - размером 64х64 пикселя и содержит нарисованные буквы размером 8х8 точек. Для среды WTK достаточно положить такой файл в папку ресурсов (res) проекта.
27.01.2009, 17:21 [13289 просмотров]