comment faire android image de l'animation

je suis en train d'essayer d'obtenir une image simple d'animation d'aller. je veux faire c'est comme si l'hélicoptère hélice à pales tournent. j'ai 3 images pour l'hélicoptère, et je suis en train de montrer l'une de ces images en fonction de l'animation de progrès. le problème est que tous les trois images finissent par se chevauchent les uns les autres plutôt que de simplement une image montrant à la fois, créant ainsi de l'animation. c'est ce que j'ai fait jusqu'à présent, j'ai même essayé d'effacer de la toile en faisant cette toile.drawColor(de Couleur.NOIR), mais qui permettrait d'effacer l'ensemble de la toile, ce qui n'est pas ce que je veux.

c'est ce que j'ai:

1) dans la classe d'Affichage:

statique de la classe Hélicoptère {
privé d'mLastUpdate;
privé d'mProgress = 0;
privé final float mX;
privé final float ma;

    private final Bitmap mHelicopter1;
private final Bitmap mHelicopter2;
private final Bitmap mHelicopter3;
private final float mRadius;
Helicopter(long mLastUpdate, float mX, float mY,
Bitmap helicopter1, Bitmap helicopter2, Bitmap helicopter3) {
this.mLastUpdate = mLastUpdate;
this.mX = mX;
this.mY = mY;
this.mHelicopter1 = helicopter1;
this.mHelicopter2 = helicopter2;
this.mHelicopter3 = helicopter3;
mRadius = ((float) mHelicopter1.getWidth()) / 2f;
}
public void update(long now) {
mProgress += (now - mLastUpdate);
if(mProgress >= 400L)
{
mProgress = 0;
}
mLastUpdate = now;
}
public void setNow(long now) {
mLastUpdate = now;
}
public void draw(Canvas canvas, Paint paint) 
{       
if (mProgress < 150L) 
{
canvas.drawBitmap(mHelicopter1, mX - mRadius, mY - mRadius, paint);
} 
else if (mProgress < 300L) 
{
canvas.drawBitmap(mHelicopter2, mX - mRadius, mY - mRadius, paint);
} 
else if(mProgress < 400L)
{
canvas.drawBitmap(mHelicopter3, mX - mRadius, mY - mRadius, paint);
}
}
public boolean done() {
return mProgress > 700L;
}
}
private ArrayList<Helicopter> mHelicopters = new ArrayList<Helicopter>();

2) ce qui est appelé dans le run() du thread:

private void doDraw(Canvas canvas) 
{
final long now = SystemClock.elapsedRealtime();
canvas.save();
for (int i = 0; i < mHelicopters.size(); i++) {
final Helicopter explosion = mHelicopters.get(i);
explosion.update(now);
}
for (int i = 0; i < mHelicopters.size(); i++) {
final Helicopter explosion = mHelicopters.get(i);
explosion.draw(canvas, mPaint);
}
canvas.restore();
}

quelqu'un peut m'aider? j'ai regardé beaucoup d'exemples sur le web sur l'animation, ils semblent toujours impliquer le texte, mais pas les images. merci.

OriginalL'auteur user270811 | 2010-04-23