Ben Görünüm genişleten bir sınıf RoundIcon oluşturduk ve sınıf setIconImage() yöntemini içerir:Android: Bir grafik elemanı nasıl yeniden çizilir?
public void setIconImage(int imageFromResources) {
iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
iconWidth = iconImage.getWidth();
iconHeight = iconImage.getHeight();
refreshDrawableState();
}
ve yöntem onDraw() vardır:
@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();
}
sorun fonksiyonu olmasıdır onDraw() her zaman metodu setIconImage() ana aktiviteden çağrılır ve bu nedenle kullanıcı arayüzünde simge değişmez.
Yöntem setIconImage çağrıldığında görüntüyü yeniden çizmek için kodun nasıl değiştirileceğini bilen var mı?