2011-12-30 15 views
0

ボタンに画像を追加するために、次のコードを使用しています。しかし、私は窓のビューからいくつかのボタンを手に入れました!ビューウィンドウにフィットさせるにはどうすればいいですか?Blackberry BitmapButtonFieldの中央揃え+ウィンドウビューのフィッティング

PLUS:私はそれらを垂直、水平に中央に置いて欲しいです。ボタンが15個あり、各行が3つ必要です。そして、画面の中央に??事前

public class BitmapButtonField extends ButtonField { 
    private Bitmap bitmap; 
    private Bitmap bitmapHighlight; 
    private boolean highlighted = false; 

    public BitmapButtonField(Bitmap bitmap, Bitmap bitmapHighlight) { 
     this(bitmap, bitmapHighlight, ButtonField.CONSUME_CLICK|ButtonField.FIELD_HCENTER|ButtonField.FIELD_VCENTER); 
    } 

    public BitmapButtonField(Bitmap bitmap, Bitmap bitmapHighlight, long style) { 
     super(style); 
     this.bitmap = bitmap; 
     this.bitmapHighlight = bitmapHighlight; 
    } 

    protected void layout(int width, int height) { 
      setExtent(getPreferredWidth(), getPreferredHeight()); 
    } 

    public int getPreferredWidth() { 
      return bitmap.getWidth(); 
    } 

    public int getPreferredHeight() { 
      return bitmap.getHeight(); 
    } 

    protected void paint(Graphics graphics) { 
      super.paint(graphics); 
      int width = bitmap.getWidth(); 
      int height = bitmap.getHeight(); 
      Bitmap b = bitmap; 
      if (highlighted) 
       b = bitmapHighlight; 
      graphics.drawBitmap(0, 0, width, height, b, 0, 0); 
    } 
} 
+0

ButtonFieldを縦横に中央に配置したい場合は、カスタムFieldManagerを実装して、必要に応じてButtonFieldインスタンスを配置する必要があります。あなたのBitmapButtonFieldクラスは大丈夫です。親マージャーが提供する最大許容幅を超えると、ビットマップの幅だけに問題が発生します。 – Rupak

答えて

0

おかげで自分のフィールドには何もありません。たぶんあなたはHorizontalFieldManagerを使用しています。幅は無限大で、フィールドは画面境界外に配置されています。 FlowFieldManagerを使用すると、この動作を変更できます。