как многократно обновлять представление (для создания анимации) - PullRequest
0 голосов
/ 29 декабря 2011

Я пытаюсь создать анимацию, в которой изменяется размер клипа и, следовательно, изменяется размер нарисованного растрового изображения, но я хочу, чтобы он выглядел как анимация. По сути, то, что я сделал, было в методе views onDraw (), я создал код, который по мере необходимости изменяет размер клипа, и каждый раз, когда он рисует растровое изображение, размер изображения изменяется.

Я не понимаю, как повторно вызывать метод onDraw в View с определенной паузой между ними ... скажем, 100ms

Мой текущий код просто создает исполняемый файл в потоке UI , который делает это. Однако, это с треском проваливается :( Я не уверен, что делать.

final Handler handler = new Handler();
    Runnable runnable = new Runnable() {
        public void run() {
            DrawnCircle hnd = ((DrawnCircle)AVE.MAIN.findViewById(R.id.drawnCircle1));
            while(hnd.getSweep()<=360){
                hnd.setSweep(hnd.getSweep()+1);
                hnd.invalidate();
                try {Thread.sleep(100);} catch (InterruptedException e) {}
            }
        }
    };
    handler.post(runnable);

спасибо за ваше время и усилия

1 Ответ

1 голос
/ 29 декабря 2011

Я просто изучаю анимацию, но как насчет использования класса Android ValueAnimator ?Если вы пытаетесь анимировать целочисленное значение, вы можете сделать что-то вроде этого:

ValueAnimator anim = ValueAnimator.ofInt(fromValue, toValue);
anim.setDuration(1000);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    hnd.setSweep(anim.getAnimatedValue(););
    hnd.invalidate();
});

anim.start();
...