Android: Wie zeichnet man ein grafisches Element neu?

Ich habe eine Klasse RoundIcon erstellt, die View erweitert, und die Klasse enthält die Methode setIconImage ():

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

und es gibt eine Methode onDraw ():

<code>@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();
}
</code>

Das Problem ist, dass die Funktion onDraw () nicht jedes Mal ausgeführt wird, wenn die Methode setIconImage () aus der Hauptaktivität aufgerufen wird, und sich daher das Symbol in der Benutzeroberfläche nicht ändert.

Weiß jemand, wie man den Code ändert, um ein Bild jedes Mal neu zu zeichnen, wenn die Methode setIconImage aufgerufen wird?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage