Frage

Ich begann Implementierung von Android Live Wallpaper, im Anschluss an die Beispiele und Tutorials im Internet zu finden, und ich kann nicht schließen png Hintergrund als Hintergrund. Auch überprüfte mit ähnlichen Problemen hier, und kann immer noch nicht damit es funktioniert.

Dies ist der 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 wird in ziehbar Ordner gespeichert, und die Version von Android sdk ist 2.2. Nachdem die Live-Tapete starten, I ‚Loading Wallpaper‘ nur erhalten, ohne das Hintergrundbild zeigt.

Hat jemand weiß, was das Problem sein könnte?

Danke. Dj.

War es hilfreich?

Lösung

verwenden Sie diese in Ihrem Draw

"Bitmap-Bild = BitmapFactory.decodeResource (GetResources (), R.drawable.image);

 canvas.drawBitmap(image, 0, 0, paint);

Sie können null in Farbe Parameter. m mit diesem und seinem Arbeits

Andere Tipps

Ich kämpfte mit einem ähnlichen Problem, c.drawColor(0xff000000); bevor die Bitmap zeichnen die Lösung für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top