В настоящее время я работаю над собственной реализацией панели вкладок для приложения 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();
}
..
}