Живые обои Android с анимацией кадров

Я пытаюсь создать живые обои для Android, используя анимацию кадра (изображение за другим из ресурса), код выглядит нормально, но проблема в том, что обои не отображаются (стек загружается и ничего не происходит), вот мой код:

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

а вот и класс двигателя. ...

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

кто-нибудь может мне помочь? Благодарю .


person obmare    schedule 06.12.2012    source источник


Ответы (1)


Инкремент может быть 2? Но вроде декодируется только битмап[0] и битмап[1].

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