Blackberry OS 5.0上的字体提前计算问题

时间:2010-03-31 17:37:16

标签: blackberry fonts alignment java-me

我目前正在为BlackBerry应用程序自己实现一个标签栏,其中每个标签栏都有一个右对齐的标题(即每个标签栏中的最后一个字符应该与右侧的标签相同。屏幕)。为了找出绘制文本的位置,我使用以下计算:

屏幕宽度 - 标题前进 - 缩进。

我使用的字体是'BBAlpha Sans'(高度28)。使用BlackBerry OS 4.6一切似乎都正确计算,当我在标签之间移动时文本是对齐的,但是我发现当我使用OS 5.0时它不能正确计算前进,因此对齐关闭可能是5像素左右。使用默认字体(也是BBAlpha Sans,但高度24 - 至少OS 5.0)它在两个版本中都可以正常工作..但我不一定总是想使用默认的字体/大小,所以任何想法可能会发生什么错误?这是5.0 API中的错误吗?

感谢。


代码:


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 个答案:

答案 0 :(得分:2)

您是否在graphics.setFont(titleBarFont)之前致电graphics.drawText()