2013-01-16 5 views
15

Ich bin ein Neuling für Blackberry und Erstellen von Menüs mit Optionen. Jede Option enthält ein Bitmap-Bild und ein Label.Wie kann ich das Hintergrundbild eines Feldmanagers ändern, während Fokuswechsel in BlackBerry Java

Dies ist der Code für den ersten Menüpunkt:

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; 
      };*/ 
     }; 

Die Bitmap & Etikettenfelder dieser VFM hinzugefügt werden. durch die Art und Weise, wie

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; 
      } 
     }; 
  • Ich mag den vertikalen Feldleiter konzentrieren, die das Bild & Etikett enthalten, während die Hintergrundeinstellung kann ich den Hintergrund nicht sehen. Ich vermute, dass sich einige Ebenen im Hintergrund überlappen.

  • Auch ich möchte die Selektorfarbe der Felder (blauer Hintergrund) in transparent ändern.

  • Bitte sagen Sie mir, welchen Fehler ich mache.

+0

hast du das PictureBackgroundButtonField.java von hier überprüft ...! http://stackoverflow.com/questions/8942225/tab-bar-in-blackberry-without-toolbarmanager/8967671#8967671 – alishaik786

+0

Dies wurde vor über einem Jahr gefragt. Wenn das OP immer noch an einer Antwort interessiert ist, aktualisieren Sie bitte die Frage und ich werde etwas Hilfe anbieten. Sonst scheint es keinen Wert zu geben, dies zu beantworten, da der Code spezifisch ist und ich vermute, dass die allgemeinen Punkte, die dazu gemacht werden könnten, bereits in anderen, besseren Fragen behandelt wurden. –

Antwort

0

Hallo Bitte versuchen Sie mit Ungültig() Methode.

Verwandte Themen