Проблема расчета шрифтов в Blackberry OS 5.0 - PullRequest
0 голосов
/ 31 марта 2010

В настоящее время я работаю над собственной реализацией панели вкладок для приложения BlackBerry, где каждая панель вкладок имеет заголовок, выровненный по правому краю (т. Е. Последний символ в каждом должен находиться на одинаковом расстоянии от правой стороны экран). Чтобы определить, где рисовать текст, я использую следующий расчет:

ширина экрана - продвижение заголовка - отступ.

Я использую шрифт BBAlpha Sans (высота 28). В BlackBerry OS 4.6 кажется, что все рассчитывается правильно, и текст перемещается при перемещении между вкладками, однако я обнаружил, что при использовании OS 5.0 он не рассчитывает заранее, и в результате выравнивание отключается, возможно, на 5 пикселей или около того. С шрифтом по умолчанию (также BBAlpha Sans, но с высотой 24 - как минимум для OS 5.0) он отлично работает в обеих версиях ... но я не всегда хочу использовать шрифт / размер по умолчанию, так что любые идеи, что может произойти неправильно? Это ошибка в API 5.0?

Спасибо. * +1007 *


Код:


public class TitleBarBackground extends Background {

..

public void draw(Graphics graphics, XYRect rect) {
  graphics.pushRegion(rect);
  ..
  Font titleBarFont = FontFamily.forName("BBAlpha Sans").getFont(Font.PLAIN, 28);
  ...
  int textWidth = titleBarFont.getAdvance(title);
  graphics.drawText(title, rect.width - textWidth - TITLE_OFFSET, textYOffset);
  graphics.popContext();
}

..

}

1 Ответ

2 голосов
/ 01 апреля 2010

Вы звоните graphics.setFont(titleBarFont) до graphics.drawText()?

...