2009-08-28 5 views
0

BitmapFieldsを追加したHorizo​​ntalFieldManager &を作成しました。Blackberry StormのHorizo​​ntalFieldManagerにBitmapFieldsを1行で表示する際の問題

Blackberry Stormでは、Display.getWidth()は480です。ランタイム時に作成する画面のLHSでBitmapFieldsを追加するには最初に450を使用します。& ScreenのRHSで2つのBitmapFieldを追加します。私は私がRHS & bitmapFieldでstartBitmapField & endBitmapFieldをしたい...

class MyCanvas extends MainScreen 
{ 

    MyCanvas() 
    { 

     hfm_BitmapField = new HorizontalFieldManager(){ 
      protected void sublayout(int maxWidth, int maxHeight) { 
      super.sublayout(maxWidth, maxHeight); 
      setExtent(Display.getWidth()-30, 60); 
      } 
     }; 


     startBitmap = Bitmap.getBitmapResource("start.png"); 
     startBitmapField = new BitmapField(startBitmap, BitmapField.ACTION_INVOKE |   BitmapField.FIELD_HCENTER | BitmapField.FIELD_RIGHT); 
     hfm_BitmapField.add(startBitmapField); 

     endBitmap = Bitmap.getBitmapResource("end.png"); 
     endBitmapField = new BitmapField(endBitmap, BitmapField.ACTION_INVOKE |   BitmapField.FIELD_HCENTER | BitmapField.FIELD_RIGHT); 
     hfm_BitmapField.add(endBitmapField); 

     drawBitmap(); 
} 


public void drawBitmap() 
{ 
     bitmap[i] = new Bitmap(50, 50); 
     Graphics g = new Graphics(bitmap[i]); 
     g.drawLine(5,5,25,25); 
     bitmapField[i] = new BitmapField(bitmap[i]); 

     synchronized(UiApplication.getEventLock()) { hfm.add(bitmapField[i]); } 
} 

などの実行時間r追加あとがきで作成mはコンストラクタ&他BitmapFieldsに追加スタートRで表示したい

2 BimapFields [私はHorizo​​ntalFieldManagersのLHSで実行時に作成しています。

私は2つのHorizo​​ntalFieldManagersを追加しようと考えています。 1 bitmapField [i] & startBitmapFieldの場合は1 & endBitmapField。しかし、Horizo​​ntalFieldManagersや他のFieldManagersを2行追加するには?

どうやってするの?

答えて

5

2つの水平フィールドマネージャを別のHorizo​​ntalFieldManagerに配置できます。

+0

ちょっとDaveJohnston、 ありがとう..私の問題を解決しました... – Shreyas

+0

あなたの問題を解決した場合は、答えを正しい解決策としてマークする必要があります。ありがとう:D – DaveJohnston

2

アライメントフラグを使用するのではなく、サブレイアウトメソッドに追加してみてください。

あなたのマネージャ(hfm)の各子供に対して、setPositionChildを呼び出す必要があります。あなたはそれが正しい揃えたいと垂直方向の中央のであれば、あなたのようなものだろう:

setPositionChild(deleteButton、hfm.getPreferredWidthを() - deleteButton.getPreferredWidth()、(hfm.getPreferredHeight()/ 2) - (deleteButton.getPreferredHeight ()/ 2));

これにより、削除ボタンの左上隅がhfm内で右揃えになり、垂直方向の中央になるように正しい位置に設定されます。

+0

ありがとうDaveJohnston。それは私の問題を解決しました...私は正しい答えとしてマークしました.. 正しい解決策をたくさんありがとう.... – Shreyas

+0

私は正しいと答えたが、私の評判は15以下です。私は投票できません。 – Shreyas

0

連絡先にアプリケーションが表示されると問題が発生します。タッチイベントの使用を避けるには、カスタマイズした各フィールドを個別のフィールドマネージャーに配置する必要があります。 super.sublayout(width、height)の代わりにlayoutChildを使用すると、画面内でのナビゲーションが無効になるため、使用しないでください。 navigationMovementを使用してフィールドのナビゲーションをカスタマイズします。 More:super.sublayout関数を使用しない場合、フィールドの一部がレイアウトされない可能性があるため、使用することをお勧めします。

その他:すべてのタッチベースのアプリケーションにStormエミュレータを使用し、他のすべてのリリースで4.5のPearlエミュレータJDEを使用して互換性の問題を解決します。

関連する問題