0

Dans mon application il y a un MainScreen. Cet écran contient beaucoup de Vertical et Horizontal gestionnaire de champ et tout le contenu s'affichent avec succès avec défilement. Il s'agit de mon principal code VerticalFieldmanager.background image désactiver désactiver dans le gestionnaire principal de champ dans blackberry

vfm_Main = new VerticalFieldManager() 
    { 
      public void paint(Graphics g) 
      { 
       g.setColor(Color.WHITE); 
       g.drawBitmap(0,0,mybackgroundImage.getWidth(),mybackgroundImage.getHeight(),mybackgroundImage,0,0); 
            super.paint(g); 
      } 
      protected void sublayout(int maxWidth, int maxHeight) 
      { 
       super.sublayout(Display.getWidth(),Display.getHeight()); 
       setExtent(Display.getWidth(),Display.getHeight()); 
      } 
    }; 

Il existe une image d'arrière-plan pour cet écran. Lorsque je fais défiler cet écran pour voir le contenu complet de cet écran, mon image de fond défile également avec le contenu .. pour cette raison, l'image de fond semble si floue et elle se répète en bas de l'écran.

Je veux faire défiler uniquement le contenu de cet écran .so comment mettre en œuvre ce ..?

J'ai essayé beaucoup mais je n'ai pas eu de suggetion et de coups pour éviter cela? si une personne face à ce problème ou avoir une idée s'il vous plaît aidez-moi ...

Merci à l'avance !!!

Répondre

1

Vous devez faire comme ceci:

vfm_Main = new VerticalFieldManager() 
{ 
      public void paint(Graphics g) 
      { 
       g.setColor(Color.WHITE); 
       g.drawBitmap(0,0,mybackgroundImage.getWidth(),mybackgroundImage.getHeight(),mybackgroundImage,0,0); 
       super.paint(g); 
      } 
      protected void sublayout(int maxWidth, int maxHeight) 
      { 
        super.sublayout(Display.getWidth(),Display.getHeight()); 
        setExtent(Display.getWidth(),Display.getHeight()); 
      } 
}; 

subver=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR) 
{ 
     protected void sublayout(int maxWidth, int maxHeight) 
     { 
       super.sublayout(Display.getWidth(),Display.getHeight()-3);//here we scroll the inner vertical 
       setExtent(Display.getWidth(),Display.getHeight()-3); 
     } 
} 
//Write all the code here; 
subver.setpadding(1,0,0,0); 
vfm_main.add(subver); 
add(vfm_Main); 

Vous aimez cette image:

Vertical Scrolling

Assez;

+0

thanx @alishaik .. je l'avais déjà implémenté de cette façon ... mais ça fait encore défiler l'image backround aussi ... as-tu implémenté avec succès ça? – Hitarth

+0

J'ai fait comme ça. Et je cours avec succès. Codeur. – alishaik786

0

J'ai aussi fait face au même problème une fois. Je l'ai réparé en utilisant 2 gestionnaires de terrain comme celui-ci.

VerticalFieldManager mainManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR) 
    { 

     public void paint(Graphics graphics) 
     { 
      graphics.clear(); 
      graphics.drawBitmap(0, 0, Display.getWidth(), Display.getHeight(), backgroundBitmap, 0, 0);      
      super.paint(graphics); 
     }    
    }; 
    //this manager is used for adding the componentes 
    VerticalFieldManager subManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR) 
    { 
     protected void sublayout(int maxWidth, int maxHeight) 
     { 
      int displayWidth = Display.getWidth(); 
      int displayHeight = Display.getHeight(); 

      super.sublayout(displayWidth, displayHeight); 
      setExtent(displayWidth, displayHeight); 
     } 
    }; 
Questions connexes