live wallpaper avec des images

(désolé pour mon vraiment englih n'est pas si bon... j'espère que vous me comprendrez)

Mon ami est un très bon tireur. Je voudrais l'aider à être connu comme un bon tireur en lui faisant un live wallpaper animé avec ses dessins.

Je voudrais lui permettre de tirer quelques images et l'utilisation de ces images pour créer un live wallpaper par l'affichage d'eux l'un après l'autre.

Je suis aux prises tant pour afficher une image, puis attendre un peu et d'affichage de la suivante. Je suis tout à fait sûr que je ne parviens pas à le faire parce que je n'utilise pas la bonne approche...

C'est ce que j'ai fait jusqu'à maintenant :

public class Cercle extends WallpaperService
{
public void onCreate() 
{
super.onCreate();
}
public void onDestroy() 
{
super.onDestroy();
}
public Engine onCreateEngine() 
{
return new CercleEngine();
}
class CercleEngine extends Engine 
{
public Bitmap image1, image2, image3;
CercleEngine() 
{       
image1 = BitmapFactory.decodeResource(getResources(), R.drawable.img1);
image2 = BitmapFactory.decodeResource(getResources(), R.drawable.img2);
image3 = BitmapFactory.decodeResource(getResources(), R.drawable.img3); 
}
public void onCreate(SurfaceHolder surfaceHolder) 
{
super.onCreate(surfaceHolder);
}
public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) 
{
drawFrame();
}
void drawFrame() 
{
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);
}
}
}
}

Ce code il vous suffit d'afficher les images trop vite parce que je ne sais pas comment faire pour attendre entre l'affichage des images...

Quelqu'un peut-il me donner quelques conseils ou me montrer un exemple d'une autre solution ?

Merci beaucoup !

Mise à JOUR :

J'ai obtenu mon problème résolu par l'ajout d'un Exécutable :

private final Runnable drawRunner = new Runnable() 
{
@Override
public void run() {
drawFrame();
}
};

et puis en ajoutant :

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

à la fin de l'étirage().

Espère que cela aidera quelqu'un.

OriginalL'auteur Pozinux | 2011-09-03