que han creado una RoundIcon clase que se extiende Vista y la clase contiene setIconImage método():Android: ¿Cómo volver a dibujar un elemento gráfico?
public void setIconImage(int imageFromResources) {
iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
iconWidth = iconImage.getWidth();
iconHeight = iconImage.getHeight();
refreshDrawableState();
}
y existe un método 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();
}
El problema es que la función onDraw() no se ejecuta cada vez que se llama al método setIconImage() desde la actividad principal y, por lo tanto, el icono no cambia en la interfaz de usuario.
¿Alguien sabe cómo modificar el código para volver a dibujar una imagen cada vez que se llama al método setIconImage?