在动态壁纸上逐帧

时间:2014-05-02 20:37:24

标签: android android-animation live-wallpaper duration

有没有办法在动态壁纸的位图上绘制逐帧动画? 我有以下代码,框架确实显示在动态壁纸上。 然而,它们都是同时出现而不是一个接一个地出现。 似乎帧之间没有持续时间。

有人可以帮忙吗? 提前谢谢。

代码:

        int frame = 0; 
        for (;frame < 8; frame ++)
        {

            int[] pirates_frame = {
            R.drawable.frame1, R.drawable.frame2, R.drawable.frame3,
            R.drawable.frame4, R.drawable.frame5, R.drawable.frame6,
            R.drawable.frame7, R.drawable.frame8,};


            icon = BitmapFactory.decodeResource(getResources(),pirates_frame[frame]);
            canvas.drawBitmap(icon, x2, y2, null);
            System.out.println("frame is : " + frame);
            icon.recycle();
        }

1 个答案:

答案 0 :(得分:1)

那里没有时间延迟。它会立即循环直到完成。您应该尝试使用具有延迟的runnable或线程来绘制每个帧。

这里有一个使用runnables的好教程:http://www.vogella.com/tutorials/AndroidLiveWallpaper/article.html

另外,我建议不要在for循环中初始化你的pirates_frame,因为你正在做同样的事情8次,在某些情况下,这可能会让事情变慢。