Android 在现场壁纸上逐帧显示

Android 在现场壁纸上逐帧显示,android,android-animation,live-wallpaper,duration,Android,Android Animation,Live Wallpaper,Duration,有没有办法在实时壁纸的位图上逐帧绘制动画? 我有下面的代码,画面确实出现在现场的壁纸上。 然而,它们都在同一时间出现,而不是一个接一个地出现。 似乎帧之间没有持续时间 有人能帮忙吗? 提前谢谢 代码: int帧=0; 对于(;帧

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

有人能帮忙吗? 提前谢谢

代码:

int帧=0;
对于(;帧<8;帧++)
{
int[]u帧={
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\u frame[frame]);
画布.drawBitmap(图标,x2,y2,空);
System.out.println(“帧为:“+frame”);
icon.recycle();
}

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

这里有一个很好的教程使用runnables:

我还建议不要在for循环中初始化你的pirates\u框架,因为你做了8次同样的事情,在某些情况下,这可能会减慢速度

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