0

我使用以下代码对图像进行动画处理,它工作正常,但在动画处理时,图像看起来很少跳跃而不是平滑移动。(看起来像移动但不太平滑。它会在两者之间停止一段时间)任何人都可以在代码中找到问题吗?

 class AnimationLoop implements Runnable
{
        public void run()
    {
        while(true)
        {
            while(running)
            {                           
                try
                {

                    Thread.sleep(30);

                }
                catch(InterruptedException ex) {}
        } 
     } 
   counter+=1;
   updatePosition(0);
   main.postInvalidate(); //main is  type panel   

 }
 private synchronized void  updatePosition(int index) {
        mYPositions[index]-=2;         // animate from bottom to top
        mXPositions[index]-=2;
}


    @Override 
    protected void onDraw(Canvas canvas)
    {  

             canvas.drawBitmap(balloonSet.get(0), mXPositions[0], mYPositions[0],null);  
    }
4

1 回答 1

0

动画的平滑度将取决于坐标的变化以及它在单个坐标上停留的时间。如果您想以相同的速度移动动画但更平滑一点,则以相同的比例减少时间和单位变化。

例如:您的案例减少了 50%。这将使 x 和 y 位置减 1,睡眠时间为 15ms。

这可能有助于如何为位图设置动画

于 2011-08-25T06:20:25.413 回答