problème dans l'affichage Bitmap Les champs dans le sens horizontal Field Manager dans une ligne de Blackberry Storm

StackOverflow https://stackoverflow.com/questions/1346184

Question

J'avais créé un BitmapFields HorizontalFieldManager et ajouté à cela.

Blackberry Storm, Display.getWidth () est 480. que je veux utiliser d'abord 450 ajouter quelques BitmapFields à LHS d'écran que je suis la création lors de l'exécution et ajouter 2 BitmapFields au début à RHS de l'écran.

2 BimapFields que je veux montrer au début r ajouté dans contructeurs et autres BitmapFields que je suis à la création postfaces moment de l'exécution r ajoutée comme ..

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

Je veux startBitmapField & endBitmapField au RHS et bitmapField [i] que je ne suis pas la création à l'exécution à LHS de HorizontalFieldManagers.

Je suis penser à ajouter 2 HorizontalFieldManagers. 1 pour bitmapField [i] et 1 pour startBitmapField & endBitmapField. Mais comment ajouter 2 HorizontalFieldManagers ou tout autre FieldManagers de suite?

Toute solution? Comment le faire?

Était-ce utile?

La solution

Vous pouvez mettre les 2 gestionnaires de champ horizontal dans un autre HorizontalFieldManager.

Autres conseils

Plutôt que d'utiliser les drapeaux d'alignement essayer d'ajouter à votre méthode sublayout.

Pour chaque enfant de votre directeur (HFM), vous devez appeler setPositionChild. Donc, si vous voulez aligné à droite et centré verticalement vous feriez quelque chose comme:

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

fixerait le coin supérieur gauche de la touche de suppression pour être à la bonne position telle qu'elle est aligné à droite et centré verticalement dans le HFM.

Il va être un problème si vous voyez l'application en contact. Vous devez avoir chacun votre champ personnalisé dans un gestionnaire de champ distinct pour éviter d'utiliser l'événement tactile. Si vous utilisez layoutChild au lieu de super.sublayout (largeur, hauteur), cela désactive la navigation dans l'écran, afin d'éviter de l'utiliser. Utilisez navigationMovement pour personnaliser la navigation de vos champs. En savoir plus:. Si vous n'utilisez pas la fonction super.sublayout, il ne pourrait pas la mise en page certains de vos champs, il est donc recommandé de l'utiliser

En savoir plus: utiliser l'émulateur Storm pour toute votre application tactile et 4.5 émulateur Perle JDEs pour toutes les autres versions, pour les problèmes de compatibilité

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top