2009-07-09 8 views

答えて

9

はlabelFieldプロパティを拡張し、フォントを設定する方法を示しResponseLabelFieldを持っているポストです: http://supportforums.blackberry.com/rim/board/message?board.id=java_dev&thread.id=37988

ここではあなたのための迅速なコードスニペットです:私は場合

LabelField displayLabel = new LabelField("Test", LabelField.FOCUSABLE) 
    { 
     protected void paintBackground(net.rim.device.api.ui.Graphics g) 
     { 
      g.clear(); 
      g.getColor(); 
      g.setColor(Color.CYAN); 
      g.fillRect(0, 0, Display.getWidth(), Display.getHeight()); 
      g.setColor(Color.BLUE);    
     } 
    }; 

    FontFamily fontFamily[] = FontFamily.getFontFamilies(); 
    Font font = fontFamily[1].getFont(FontFamily.CBTF_FONT, 8); 
    displayLabel.setFont(font); 

誰かが私を修正します間違っていますが、別のフォントをfontFamily配列に別のインデックスを使用して選択すると思います。

編集:そして、ここであなたは、フォントを切り替えるために使用できるテストアプリです:http://blackberry-digger.blogspot.com/2009/04/how-to-change-fonts-in-blackberry.html

21

あなただけLabelField.setFontを使用することができます。ラベルフィールドでこれを明示的に行わないと、フィールドはそのマネージャによって使用されているフォントを使用します(階層を上に移動するなど)。

フォントを取得するにはいくつかの方法があります。ここで(他には、特定のフォントファミリを取得し、そこからフォントを得ることである

LabelField labelField = new LabelField("Hello World"); 
Font myFont = Font.getDefault().derive(Font.BOLD, 9, Ui.UNITS_pt); 
labelField.setFont(myFont); 

:一つは、既存のフォント(このケースでは、私は、デフォルトのフォントの太字バージョンを取得しています)から1を導出することです)12ポイントイタリックフォントを取得:

LabelField labelField = new LabelField("Hello World"); 
FontFamily fontFamily = FontFamily.forName("BBCasual"); 
Font myFont = fontFamily.derive(Font.ITALIC, 12, Ui.UNITS_pt); 
labelField.setFont(myFont); 

注意すべき物事のカップル:私の代わりにUNITS_pxの(点)(ピクセル)UNITS_ptを使用。 BlackBerryデバイスは画面サイズと解像度(DPI)がかなり異なるため、一般的には良いアイデアです。ポイントを使用すると、ボールドや8900のテキストが小さく見えるのではなく、デバイス全体でより一貫した外観が得られますカーブまたはパール)。

また、2番目の例では、forNameはcatchする必要があるClassCastExceptionをスローすることができます(チェックされた例外です)。実際にはJavadocに基づいてスローされることはありません。フォントファミリー。

関連する問題