我目前正在为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();
}
..
}
答案 0 :(得分:2)
您是否在graphics.setFont(titleBarFont)
之前致电graphics.drawText()
?