|
Pers.narod.ru. Тексты. Java2ME. Вывод текста нестандартным графическим шрифтом в 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) проекта.
|
|