problemas en la visualización de mapa de bits en los campos Horizontal Gerente de Campo en una fila en Blackberry Storm

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

Pregunta

Me había creado un HorizontalFieldManager y agregados BitmapFields en eso.

En Blackberry Storm, Display.getWidth () es 480. En ese quiero usar primero 450 añadir algunas BitmapFields en LHS de pantalla que me estoy creando en tiempo de ejecución y añadir 2 BitmapFields en la puesta en RHS de la pantalla.

2 BimapFields que quiero mostrar en el arranque r añadido en el constructor y otros BitmapFields la que estoy creando en epílogos añadidos como tiempo de ejecución 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]); }
 }  

Quiero startBitmapField y endBitmapField en RHS y bitmapField [i] que i M crear en tiempo de ejecución en LHS de HorizontalFieldManagers.

Me estoy pensando añadir 2 HorizontalFieldManagers. 1 para bitmapField [i] y 1 para startBitmapField y endBitmapField. Pero cómo agregar 2 HorizontalFieldManagers o cualquier otro FieldManagers en una fila?

Cualquier solución? ¿Cómo hacerlo?

¿Fue útil?

Solución

Puede poner las 2 gerentes de campo horizontal dentro de otro HorizontalFieldManager.

Otros consejos

En lugar de utilizar las banderas de alineación trate de añadir a su método de sublayout.

Para cada niño de su Gerente (HFM) es necesario llamar a setPositionChild. Así que si quieres hacerlo bien alineado y centrado verticalmente que haría algo como:

setPositionChild (botón Delete, hfm.getPreferredWidth () - deleteButton.getPreferredWidth (), (hfm.getPreferredHeight () / 2) - (deleteButton.getPreferredHeight () / 2));

Esto establece la esquina superior izquierda del botón de borrar para estar en la posición correcta de manera que esté alineado a la derecha y verticalmente centrada dentro del HFM.

No va a ser un problema si usted ve la aplicación en contacto. Debe tener cada uno de su campo personalizado en un gestor de campo separado para evitar el uso de eventos táctiles. Si utiliza layoutChild en lugar de super.sublayout (anchura, altura), esto desactivará la navegación en la pantalla, por lo que evitar el uso de la misma. Utilice navigationMovement para personalizar la navegación de sus campos. Más:. Si no utiliza la función super.sublayout, puede que no layout algunos de sus campos, por lo tanto, se recomienda que lo utilice

Más: Tormenta uso emulador para todas sus aplicaciones basadas en el tacto, y 4,5 Perla JDEs emulador para todas las otras versiones, por los problemas de compatibilidad

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top