我使用下面的代码为图像设置动画效果很好但是动画图像看起来很少跳跃而不是平滑移动。(它看起来像移动但不是很平滑。它会停止一段时间)可以任何人发现问题在代码?
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);
}
答案 0 :(得分:0)
动画的平滑度取决于坐标的变化以及它在单个坐标处停留的时间。如果您想以相同的速度移动动画但是稍微平滑一点,那么将时间和单位变化减少相同的比例。
例如:您的案件减少了50%。这将使x和y位置扣除1,睡眠时间将为15ms。
这可能会有助how to animate bitmaps