0

Horizo​​ntalFieldManager を作成し、その中に BitmapFields を追加しました。

Blackberry Storm では、Display.getWidth() は 480 です。最初の 450 を使用して、実行時に作成している画面の LHS にいくつかの BitmapFields を追加し、画面の RHS の開始時に 2 つの BitmapFields を追加します。

開始時に表示したい 2 つの BimapFields r コンストラクターに追加 & 実行時に作成している他の BitmapFields r のようなあとがきを追加..

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]); }
 }  

実行時に Horizo​​ntalFieldManagers の LHS で作成している RHS で startBitmapField と endBitmapField と bitmapField[i] が必要です。

2 つの Horizo​​ntalFieldManagers を追加することを考えています。bitmapField[i] の場合は 1、startBitmapField と endBitmapField の場合は 1。しかし、2 つの Horizo​​ntalFieldManagers または他の FieldManagers を連続して追加するにはどうすればよいでしょうか?

解決策はありますか?どうやってするの?

4

3 に答える 3

5

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

于 2009-08-28T10:35:57.060 に答える
2

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

Manager (hfm) の各子に対して、setPositionChild を呼び出す必要があります。したがって、右揃えで垂直方向の中央に配置したい場合は、次のようにします。

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

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

于 2009-08-28T13:24:12.007 に答える
0

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

詳細: 互換性の問題のために、すべてのタッチベースのアプリケーションには Storm エミュレーターを使用し、他のすべてのリリースには 4.5 Pearl エミュレーター JDE を使用してください。

于 2011-03-30T04:50:05.450 に答える