如何重复刷新View(创建动画)

时间:2011-12-29 03:14:52

标签: android multithreading animation runnable

我正在尝试制作剪辑大小更改的动画,因此绘制的位图的大小会发生变化,但我希望它看起来像动画。基本上,我所做的是在视图onDraw()方法中,我已经制作了根据需要更改剪辑大小的代码,每次绘制位图时,图像大小都会改变。

我很困惑如何在视图上重复调用onDraw方法,其间有一定的暂停...让我们说100毫秒

我当前的代码 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 个答案:

答案 0 :(得分:1)

我自己只是学习动画,但是如何使用Android的ValueAnimator课程呢?如果您尝试为整数值设置动画,则可以执行以下操作:

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

anim.start();