tôi đã tạo ra một RoundIcon lớp mà kéo dài Xem và lớp chứa) phương pháp setIconImage (:Android: Cách vẽ lại phần tử đồ họa?
public void setIconImage(int imageFromResources) {
iconImage = BitmapFactory.decodeResource(getResources(), imageFromResources);
iconWidth = iconImage.getWidth();
iconHeight = iconImage.getHeight();
refreshDrawableState();
}
và có một phương pháp 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();
}
Vấn đề là các chức năng onDraw() không thực hiện mỗi khi phương thức setIconImage() được gọi từ hoạt động chính và do đó biểu tượng không thay đổi trong giao diện người dùng.
Có ai biết cách sửa đổi mã để vẽ lại hình ảnh mỗi khi phương thức setIconImage được gọi?