2010-03-31 24 views
0

我目前正在爲自己的BlackBerry應用程序實現一個標籤欄,其中每個標籤欄都有一個右對齊的標題(即每個標籤的最後一個字符應該相同距離屏幕右側的距離)。要計算在哪裏繪製文本,我使用以下計算:黑莓OS 5.0的字體提前計算問題

屏幕寬度 - 標題的提前 - 縮進。

我使用的字體是'BBAlpha Sans'(身高28)。使用黑莓操作系統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(); 
} 

.. 

} 

回答

2

你打電話graphics.setFont(titleBarFont)graphics.drawText()過嗎?

+0

不!我現在感到很蠢,謝謝你,不敢相信我錯過了它。 – John 2010-04-01 09:37:32