Android: как перерисовать графический элемент?
Я создал класс RoundIcon, который расширяет View, и класс содержит метод setIconImage ():
<code>public void setIconImage(int imageFromResources) { iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources); iconWidth = iconImage.getWidth(); iconHeight = iconImage.getHeight(); refreshDrawableState(); } </code>
и есть метод 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>
Проблема состоит в том, что функция onDraw () не выполняется каждый раз, когда метод setIconImage () вызывается из основного действия, и, следовательно, значок не изменяется в пользовательском интерфейсе.
Кто-нибудь знает, как изменить код, чтобы перерисовывать изображение каждый раз, когда вызывается метод setIconImage?