【问题标题】:Font advance calculation problem on Blackberry OS 5.0Blackberry OS 5.0 上的字体提前计算问题
【发布时间】: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


    【解决方案1】:

    你是在graphics.drawText()之前打电话给graphics.setFont(titleBarFont)吗?

    【讨论】:

    • 不!我现在觉得很愚蠢,谢谢你,不敢相信我错过了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多