【发布时间】:2010-04-01 08:18:10
【问题描述】:
我目前正在为 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();
}
..
}
【问题讨论】:
标签: blackberry fonts alignment java-me