2013-01-16 15 views
15

Sono un novizio di BlackBerry e creazione di menu con opzioni. Ogni opzione contiene un'immagine e un'etichetta bitmap.Come modificare l'immagine di sfondo di un gestore di campo mentre il cambio di messa a fuoco in BlackBerry Java

Questo è il codice per la prima voce di menu:

hmf1_vfm1 = new VerticalFieldManager(Field.FIELD_HCENTER |   VErrticalFieldManager.USE_ALL_WIDTH | VerticalFieldManager.FIELD_HCENTER | VerticalFieldManager.FOCUSABLE | Field.FOCUSABLE) 
{ 
boolean isFocus; 
//Bitmap bmp1 = Bitmap.getBitmapResource("mnu_tile1.png"); 
protected void sublayout(int maxWidth, int maxHeight) 
{ 
super.sublayout(100,125); 
setExtent(100,125); 
} 

protected void paint(Graphics g) { 
try 
{ 
    //g.setBackgroundColor(0x504A4B); 
    //g.drawBitmap(0, 0, bmp1.getWidth(), bmp1.getHeight(), bmp1, 0, 0); 
        g.clear(); 
    Background bg = BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource("mnu_tile1.png")); //mnu_tile1.png 
        this.setBackground(bg); 
        super.paint(g); 
       } 
       catch (IllegalArgumentException e) { 
        //SupportClass.showLog(TAG+" err 2 : "+e); 
       } 
      } 

      protected void onFocus(int direction) { 
       isFocus = true; 
       super.onFocus(direction); 
      } 
      protected void onUnfocus() { 
       isFocus = false; 
       super.onUnfocus(); 
      } 

      protected boolean navigationClick(int status, int time) { 

       //SupportClass.showLog("New Order...navigationClick"); 
       return true; 
      } 
      public boolean isFocusable() { 
       return true; 
      } 
      /*protected boolean touchEvent(net.rim.device.api.ui.TouchEvent message) { 

       //SupportClass.showLog("New Order...touchEvent"); 
       return true; 
      };*/ 
     }; 

I campi etichetta bitmap & vengono aggiunti a questo VFM. tra l'altro come

BitmapField bfNO = new BitmapField(bmpNO,Field.FIELD_HCENTER | Field.FOCUSABLE) 
     { 
      protected boolean navigationClick(int status, int time) { 
       SupportClass.showLog("bitmap...navigationClick"); 
       return true; 
      } 
      protected void paint(Graphics graphics) { 
       //this.setBackground(BackgroundFactory.createSolidTransparentBackground(Color.BLACK,0)); 
       super.paint(graphics); 
      } 
     }; 

LabelField txtNO = new LabelField("New Order",LabelField.FIELD_HCENTER | Field.FOCUSABLE) 
     { 
      protected void paint(Graphics g) { 
       g.setColor(Color.WHITE); 
       //g.setBackgroundColor(0x00000000); 
       super.paint(g); 
      } 
      protected boolean navigationClick(int status, int time) { 
       SupportClass.showLog("lable...navigationClick"); 
       return true; 
      } 
     }; 
  • voglio mettere a fuoco il direttore di campo verticale che contiene l'etichetta immagine &, durante l'impostazione del fondo non riesco a vedere il fondo. Immagino che alcuni livelli siano sovrapposti sullo sfondo.

  • Inoltre, voglio cambiare il colore del selettore dei campi (sfondo blu) in trasparente.

  • Per favore dimmi che errore sto facendo.

+0

hai controllato PictureBackgroundButtonField.java di qui ...! http://stackoverflow.com/questions/8942225/tab-bar-in-blackberry-without-toolbarmanager/8967671#8967671 – alishaik786

+0

Questo è stato chiesto più di un anno fa. Se l'OP è ancora interessato a una risposta, ti preghiamo di aggiornare la domanda e fornirò assistenza. Altrimenti sembra che non ci sia alcun valore nel rispondere a questo dato che il codice è specifico e sospetto che i punti generali che potrebbero essere fatti su questo argomento siano già stati trattati in altre, migliori domande. –

risposta

0

Ciao Si prega di provare con invalidate() metodo.