Android动态壁纸与帧动画

时间:2012-12-06 14:34:52

标签: android animation frame live live-wallpaper

我试图使用框架动画创建安卓动态壁纸(图片显示其他来自ressource),代码看起来不错,但问题是壁纸没有显示(堆叠在加载中没有发生), 这是我的代码:

public class lwpService extends WallpaperService {
int incrementer=0;
Bitmap bmps[]=new Bitmap[10];

public void onCreate() 
{
super.onCreate();
}

public void onDestroy() 
{
super.onDestroy();}

public Engine onCreateEngine() 
{
return new WallpaperSerEngine();
}

这里是ande引擎类。 ...

class WallpaperSerEngine extends Engine 
{

int res[]={R.drawable.img_00,R.drawable.img_01};
WallpaperSerEngine() 
{  
      for(int i=0;i<2;i++)
          {
                bmps[i]= BitmapFactory.decodeResource(getResources(),res[i]);                     
           }
}
}

private final Handler handler = new Handler();
 private final Runnable drawRunner = new Runnable() {
        @Override
        public void run() {

              drawFrame();

        }

    };
    void drawFrame() 
    {
        final SurfaceHolder holder = getSurfaceHolder();

        Canvas c = null;
        try 
        {
            c = holder.lockCanvas();
            if (c != null) 
            {              

                c.drawBitmap(bmps[incrementer], 0, 0, null);
                incrementer=(incrementer==2)?0 : incrementer+1; 

            }
        } finally 
        {
            if (c != null) holder.unlockCanvasAndPost(c);
        }
       handler.removeCallbacks(drawRunner);
       handler.postDelayed(drawRunner, 200);
    }

    private SurfaceHolder getSurfaceHolder() {
        // TODO Auto-generated method stub
        return null;
    }
}

任何人都可以帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:0)

增量器可能是2? 但它似乎只解码了位图[0]和位图[1]。

c.drawBitmap(bmps[incrementer], 0, 0, null);
incrementer=(incrementer==2)?0 : incrementer+1;