views:

47

answers:

0

Hi,

I started implementation of android live wallpaper, following the examples and tutorials found on the internet, and I can't include png background as wallpaper. Also checked with similar problems here, and still can't make it work.

This is the code:

public class LiveWallpaper extends WallpaperService {

/* IDs of recurces needed for animations*/
private SurfaceHolder holder;
private static final String TAG = "MyActivity";

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

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

@Override
public Engine onCreateEngine() {
    return new WallpaperEngine();
}

class WallpaperEngine extends Engine {
public final Runnable mDrawWallpaper = new Runnable(){
     public void run(){
        drawWallpaper();
     }
    };

    @Override
    public void onCreate(SurfaceHolder surfaceHolder){
        super.onCreate(surfaceHolder);
        setTouchEventsEnabled(false);
        loadImagesIntoMemory(R.drawable.wallpaper);
        holder = getSurfaceHolder();

    }

    void drawWallpaperContent(Canvas c, int resourceId){
        Bitmap decodeResoure = BitmapFactory.decodeResource (getResources(), resourceId);
        c.drawBitmap(decodeResoure, 0, 0, null);
    }

    void drawWallpaper(){
        final SurfaceHolder holder = getSurfaceHolder();
        Canvas c = null;
            c = holder.lockCanvas();

        if(c!=null){
            c.save();
            drawWallpaperContent(c, R.drawable.wallpaper);
                    c.restore();
        }
    }

    private void loadImagesIntoMemory(int resourceId){
        Resources res = getResources();
        BitmapFactory.decodeResource(res, resourceId);
    }

    @Override
    public void onDestroy(){
        super.onDestroy();
        mHandler.removeCallbacks(mDrawWallpaper);           
    }
}

}

Bitmap is stored in drawable folder, and the version of android sdk is 2.2. After launching the live wallpaper, I only get 'Loading Wallpaper' without showing the wallpaper image.

Does anyone knows what could be the problem?

Thank you. Dj.