Android图像移动动画问题

发布于 2024-12-01 05:09:55 字数 882 浏览 1 评论 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);  
    }

i used following code to animate a image it works fine but while animating the image looks little jumping rather than smooth moving.(It looks like moving but not quite smooth. it stops a while in between) Can Any one find the problem in code?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清晨说晚安 2024-12-08 05:09:55

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

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

这可能有助于如何制作动画位图

The smoothness of your animation will depend on the change in coordinates and the time it stays at a single coordinate. If you want to move the animation at same speed but a little smooother, then reduce the time and unit change by same ratio.

For example: Your case reduce by 50%. That will make x and y position to be deducted by 1 and the sleep time will be 15ms.

This might help how to animate bitmaps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文