Я хочу использовать пользовательские шрифты в своем приложении j2me.поэтому я создал png-файл, содержащий все необходимые глифы и массив ширины глифов и еще один для смещения глифов в файле PNG.
Теперь я хочу визуализировать текст в моем приложении с использованием указанного выше шрифта в классе gameCanvas.но когда я использую следующий код, рендеринг текста на реальном устройстве происходит очень медленно.
Примечание: текст кодируется (для некоторых целей) в байты и сохраняется в переменной this.text.242 = [пробел], 241 = [\ n] и 243 = [\ r].
int textIndex = 0;
while(textIndex < this.text.length)
{
int index = this.text[textIndex] & 0xFF;
if(index > 243)
{
continue;
}
else if(index == 242) lineLeft += 3;
else if(index == 241 || index == 243)
{
top += font.getHeight();
lineLeft = 0;
continue;
}
else
{
lineLeft += widths[index];
if(lineLeft <= getWidth())
lineLeft = 0;
int left = starts[index];
int charWidth = widths[index];
try{
bg.drawRegion(font, left, 0, charWidth, font.getHeight(), 0, lineLeft, top, Graphics.LEFT|Graphics.TOP);
}catch(Exception ee)
{
}
}
textIndex++;
}
Может ли кто-нибудь помочь мне улучшить производительность и скорость в моем коде?
В концеизвините за мой плохой английский и спасибо за продвинутый. :)
Редактировать: я изменил строку
bg.drawRegion(font, left, 0, charWidth, font.getHeight(), 0, lineLeft, top, Graphics.LEFT|Graphics.TOP);
На:
bg.clipRect(left, top, charWidth, font.getHeight());
bg.drawImage(font, lineLeft - left, top,0)
bg.setClip(0, 0, getWidth(), getHeight());
но не было никакой разницы в скорости!!
любая помощь, пожалуйста !!
Может кто-нибудь PLZ помочь мне улучшить мое приложение?
текст появится через 2-3 секунды в реальном устройствеэтот код, я хочу сократить это время до миллисекунд.это очень важно для меня.
Могу ли я использовать темы?Если да, то как?