2013-01-16 4 views
15

저는 블랙 베리를 초보자이며 옵션이있는 메뉴를 만드는 중입니다. 각 옵션에는 비트 맵 이미지와 레이블이 포함됩니다.BlackBerry에서 포커스가 변경되는 동안 필드 관리자의 배경 이미지를 변경하는 방법 Java

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

비트 맵 & 레이블 필드 VFM이 첨가되어

첫번째 메뉴 항목의 코드이다.

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; 
      } 
     }; 
  • 같은 방법으로 나는 배경 내가 배경을 볼 수 없습니다를 설정하는 동안, 이미지 & 라벨을 포함하는 수직 필드 관리자를 집중하고 싶어요. 나는 어떤 레이어가 배경 위에 겹쳐져있는 것 같아.

  • 또한 필드 (파란색 배경)의 선택기 색을 투명하게 변경하고 싶습니다.

  • 제게 실수를하고 싶습니다.

+0

여기의 PictureBackgroundButtonField.java를 확인 했습니까 ...! http://stackoverflow.com/questions/8942225/tab-bar-in-blackberry-without-toolbarmanager/8967671#8967671 – alishaik786

+0

1 년 전에 요청되었습니다. OP가 아직 응답에 관심이있는 경우 질문을 업데이트하면 도움이 될 것입니다. 그렇지 않으면 코드가 구체적이기 때문에 아무런 가치가없는 것처럼 보입니다. 그리고이 코드에 대한 일반적인 요점은 다른 좋은 질문에서 이미 다루어 졌다고 생각됩니다. –

답변

0

안녕하세요. invalidate() 메소드를 사용해보세요.