2009-11-19 2 views
1

Я создал пользовательский класс полей «Ищи», чтобы нарисовать fillrectangle.Blackberry - как анимировать пользовательское поле?

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

И я создал еще один класс Test стремятся установить значение заполнения с помощью таймера

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(); 
     } 
    } 
} 

Но я не анимировать заполнять прямоугольник.

ответ

3

Попробуйте вызвать invalidate() в методе setValue.

+0

Его рабочих Smoooth. Я должен большой! большое спасибо – Bohemian

Смежные вопросы