2010-12-22 1 views
0

hi In Blackberry habe ich ein horizontales Feld managar erstellt und einige Schaltflächen kleiner Größe hinzugefügt, um Symbolleiste am unteren Rand des Bildschirms anzuzeigen.Aber mein Problem ist dort ist zu viel Abstand zwischen den 2 Knöpfen. Ich muss diesen Abstand zwischen 2 Knöpfen verringern, damit ich es schaffen kann, atleast 6 Knöpfe am unteren Rand des Schirmes zu setzen. Ich verwende die BFmsg.setMargin (305,0,0,40) Aussage . Kann mir bitte jemand dabei helfen.BlackBerry: Reduzieren Sie den Abstand zwischen 2 Tasten in HorizontalFieldManager

Im Anschluss ist mein Code:

BFcontacts = new ButtonField("Cnt") 
    { 
     protected void paint(Graphics graphics) 
     { 
     //Bitmap contactsbitmap = Bitmap.getBitmapResource("contacts.jpg"); 
      //graphics.drawBitmap(0, 0, contactsbitmap.getWidth(), contactsbitmap.getHeight(), contactsbitmap, 0, 0); 
      graphics.setColor(Color.WHITE); 
      graphics.drawText("Cnt",0,0); 
     } 
    }; 


    BFcontacts.setMargin(305,0,0,10);//vertical pos,0,0,horizontal pos 
    HFM.add(BFcontacts); 

    BFmsg = new ButtonField("Msgs") 
    { 
     protected void paint(Graphics graphics) 
     { 
     //Bitmap msgsbitmap = Bitmap.getBitmapResource("messages.jpg"); 
      //graphics.drawBitmap(0, 0, msgsbitmap.getWidth(), msgsbitmap.getHeight(), msgsbitmap, 0, 0); 
      graphics.setColor(Color.WHITE); 
      graphics.drawText("Msgs",0,0); 
     } 
    }; 


    BFmsg.setMargin(305,0,0,40);//vertical pos,0,0,horizontal pos : original 
    HFM.add(BFmsg); 

    add(HFM) 

Vielen Dank im Voraus

Antwort

1

haben u versucht, benutzerdefinierte-Manager u den Inhalt als pro ur Wahl Objekt dieser Klasse erstellen, wie diese

platzieren können und Elemente hinzufügen, um es

class BottomManager extends Manager 
    { 
     BottomManager() 
     { 
      super(Manager.NO_VERTICAL_SCROLL); 
     } 
     protected void sublayout(int width, int height) 
     { 
      Field field = getField(0); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,0,0); 

      field = getField(1); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,10+getField(0).getWidth(),0); 

      field = getField(2); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,10+getField(1).getWidth(),0); 

      field = getField(3); 
      layoutChild(field,Display.getWidth(), Display.getHeight()); 
      setPositionChild(field,getField(2).getWidth()+10,0); 

      setExtent(Display.getWidth(), 40); 
     } 
    } 
0

Ich bin nicht sicher, ob ich völlig verstehe Ihre Frage. aber wenn Sie alle Ihre Knöpfe in HorizontalFieldManager setzen, versuchen sie alle, in eine Reihe zu passen, jetzt können Sie Rand für Ihre HorizontalFieldManager setzen, um unten oder an bestimmter x y Position zu zeigen. und fügen Sie dann diese Manager zu Ihrer HFM

2

setMargin (305,0,0,40) // = oben, rechts, unten, links

Die Marge ist relativ zum nächsten Objekt des Wertes angegeben.

Wenn Sie also einfach den linken Wert von 40 auf etwas kleiner reduzieren, können Sie mehr Objekte in das horizontale Feld einfügen.

Möglicherweise möchten Sie die (Display.getWidth() - (button.getWidth() * numButtons))/numButtons + 1 nehmen, um auch den linken Randabstand zu berechnen.