Android: Comment faire pour actualiser l'affichage d'un élément graphique?

J'ai créé une classe RoundIcon qui s'étend de la Vue et de la classe contient setIconImage() méthode:

public void setIconImage(int imageFromResources) {
    iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
    iconWidth = iconImage.getWidth();
    iconHeight = iconImage.getHeight();
    refreshDrawableState();
}

et il y a une méthode onDraw():

@Override
protected void onDraw(Canvas canvas) {

    if(px == 0 || py == 0)
    {
        px = 50;
        py = 50;
    }


    canvas.drawCircle(px, py, circleRadius, circlePaint);
    canvas.save();

    if(iconImage != null)
    {
        int cardinalX = px - iconWidth/2;
        int cardinalY = py - iconHeight/2;
        canvas.drawBitmap(iconImage, cardinalX, cardinalY, iconPaint);
    }

    canvas.restore();
}

Le problème est que la fonction onDraw() n'a pas d'exécuter à chaque fois que la méthode setIconImage() est appelée à partir de l'activité principale et, par conséquent, l'icône ne change pas dans l'interface utilisateur.

Personne ne sait comment modifier le code pour redessiner une image à chaque fois que la méthode setIconImage est appelé?

InformationsquelleAutor Niko Gamulin | 2009-06-19