2009-11-19 8 views
1

J'ai créé une classe de champ personnalisée "Seek" pour dessiner un fill-rectangle.Blackberry - comment animer un champ personnalisé?

class Seek extends Field { 
    int fill; 
    protected void layout(int width, int height) { 
     setExtent(320, 5); 
    } 
    protected void paint(Graphics graphics) { 
     graphics.setColor(Color.RED); 
     graphics.fillRect(0, 0, fill, 5); 
    } 
    protected void setValue(int value) { 
     fill = value; 
    } 
} 

Et j'ai créé un autre test de classe cherchent à définir la valeur de remplissage à l'aide d'une minuterie

public class TestSeek extends UiApplication { 
    public static void main(String[] args) { 
     TestSeek gbResults = new TestSeek(); 
     gbResults.enterEventDispatcher(); 
    } 
    private TestSeek() { 
     pushScreen(new ProgressScreen()); 
    } 
} 

class ProgressScreen extends MainScreen { 
    Timer timer = new Timer(); 
    int i = 80; 
    Seek SeekField = new Seek(); 

    public ProgressScreen() { 
     add(SeekField); 
     timer.schedule(new RemindTask(), 100, 10); 
    } 

    class RemindTask extends TimerTask { 
     public void run() { 
      if (i < 320) { 
       i += 1; 
       SeekField.setValue(i); 
      } else 
       timer.cancel(); 
     } 
    } 
} 

Mais je suis incapable d'animer le remplissage du rectangle.

Répondre

3

Essayez d'appeler invalidate() dans votre méthode setValue.

+0

Son fonctionnement Smoooth. Je dois gros! Merci beaucoup – Bohemian

Questions connexes