我创建了一个类 RoundIcon 扩展 View 并且该类包含 setIconImage() 方法:
public void setIconImage(int imageFromResources) {
iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
iconWidth = iconImage.getWidth();
iconHeight = iconImage.getHeight();
refreshDrawableState();
}
并且有一个方法 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();
}
问题是每次从主活动调用方法 setIconImage() 时,函数 onDraw() 都不会执行,因此用户界面中的图标不会改变。
有谁知道如何修改代码以便在每次调用 setIconImage 方法时重绘图像?