J'ai créé un RoundIcon de classe qui étend vue et la classe contient setIconImage() Méthode:Android: Comment redessiner un élément graphique?
public void setIconImage(int imageFromResources) {
iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
iconWidth = iconImage.getWidth();
iconHeight = iconImage.getHeight();
refreshDrawableState();
}
et il existe 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() ne s'exécute pas à chaque fois que la méthode setIconImage() est appelée depuis l'activité principale et que par conséquent l'icône ne change pas dans l'interface utilisateur.
Est-ce que quelqu'un sait comment modifier le code afin de redessiner une image à chaque fois que la méthode setIconImage est appelée?