Effacer le canevas avec Canvas.drawColor ()

je suis d'essayer de changer l'image de fond d'un Affichage personnalisé avec un certain succès. l'image va changer, mais le problème est que j'ai encore voir les traces de l'ancienne image. lorsque je tente de l'effacer de la toile avant de dessiner la nouvelle image, il ne semble pas fonctionner. j'ai créer une image bitmap pour stocker l'image. lors de la modification de l'image, je l'appelle la Toile.drawColor() avant de dessiner la nouvelle image, mais l'ancienne image persiste. j'ai essayé drawColor(0), drawColor(de Couleur.NOIR), c.drawColor(0, PorterDuff.Mode.CLAIR), et aucun des travaux ci-dessus. en tant que tel, j'ai dû poster ce depuis plus expérimentés esprit que le mien.

le code est comme suit:

private int bgnd;
private boolean switching;

public void setBgnd(int incoming){
    switching = true;
    switch (incoming){

    case R.drawable.image1:
        bgnd = incoming;
        this.invalidate();
        break;

    case R.drawable.image2:
        bgnd = incoming;
        this.invalidate();
        break;

    }
}



protected void onDraw(Canvas c){
    if(switching == true){
        Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd);
        c.drawColor(0, PorterDuff.Mode.CLEAR);
        c.drawBitmap(b, 0, 0, null);
        switching = false;

    }else{
        Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd);
        c.drawBitmap(b, 0, 0, null);
    }
}

source d'informationauteur Prmths | 2011-01-10