Einfache Android-Live-Wallpaper mit der Reihenfolge der Bilder - Aktualisiert mit code

Ich entwickeln möchte, eine einfache Live-Wallpaper mit einer Sequenz von Bildern. Die einzige animation, die erforderlich ist für jedes Bild fade-in und fade-out.

Alle tutorials die ich gefunden habe, online für LWP zu zeigen, wie die Auslosung Leinwand für ausgefallene Animationen und Zeichnung. Dies ist nicht erforderlich für meine app, ich will nur zum Durchlaufen einer Auflistung von Bildern.

Wird ein Anfänger-Programmierer, ich brauche etwas Hilfe lernen, wie man eine Schleife durch ein array von Bildern und wie die Anzeige als wallpaper.

Kann niemandem teilen einige code oder Stelle mich auf ein gutes tutorial dafür?

UPDATE

Die LWP lädt auf meinem Gerät, aber das Hintergrundbild nicht ändern. Es ist fest auf image3, ironman

Hier ist der code, den ich bisher haben. Ich nehme an, ich mache etwas falsch in der draw () -

public class Wallpaper extends WallpaperService {
public void onCreate() {
    super.onCreate();
}

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

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

class CercleEngine extends Engine {

    private final Handler handler = new Handler();
    private final Runnable drawRunner = new Runnable() {
        @Override
        public void run() {
            draw();
        }
    };
    private boolean visible = true;
    public Bitmap image1, image2, image3;

    CercleEngine() {
        image1 = BitmapFactory.decodeResource(getResources(),
                R.drawable.batman);
        image2 = BitmapFactory.decodeResource(getResources(),
                R.drawable.captainamerica);
        image3 = BitmapFactory.decodeResource(getResources(),
                R.drawable.ironman);
    }


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

    @Override
    public void onVisibilityChanged(boolean visible) {
        this.visible = visible;
        if (visible) {
            handler.post(drawRunner);
        } else {
            handler.removeCallbacks(drawRunner);
        }
    }

    @Override
    public void onSurfaceDestroyed(SurfaceHolder holder) {
        super.onSurfaceDestroyed(holder);
        this.visible = false;
        handler.removeCallbacks(drawRunner);
    }

    public void onOffsetsChanged(float xOffset, float yOffset, float xStep,
            float yStep, int xPixels, int yPixels) {
        draw();
    }

    void draw() {
        final SurfaceHolder holder = getSurfaceHolder();

        Canvas c = null;
        try {
            c = holder.lockCanvas();
            if (c != null) {
                c.drawBitmap(image1, 0, 0, null);
                c.drawBitmap(image2, 0, 0, null);
                c.drawBitmap(image3, 0, 0, null);
            }
        } finally {
            if (c != null)
                holder.unlockCanvasAndPost(c);
        }

        handler.removeCallbacks(drawRunner);
        if (visible) 
        {
           handler.postDelayed(drawRunner, 1000); //delay 1 sec
        }

    }
}

InformationsquelleAutor tiptopjat | 2012-07-03

Schreibe einen Kommentar