Tôi chỉ đang cố gắng để hiển thị một biểu tượng của một người đàn ông với một vòng tròn dưới chân của mình ở trung tâm của MapView. Đây là mã Lớp phủ của tôi:Tại sao bóng của Lớp phủ MapView của tôi ở sai địa điểm?
public class CenterOverlay extends Overlay
{
private Drawable d;
public CenterOverlay(Drawable drawable)
{
final int w = drawable.getIntrinsicWidth();
final int h = drawable.getIntrinsicHeight();
drawable.setBounds(0, 0, w, h);
this.d = drawable;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
final int mapCenterX = mapView.getWidth()/2;
final int mapCenterY = mapView.getHeight()/2;
final int x = mapCenterX - d.getIntrinsicWidth()/2;
final int y = mapCenterY - d.getIntrinsicHeight();
drawAt(canvas, d, x, y, shadow);
}
}
Mã để thêm Lớp phủ vào MapView đang hoạt động tốt (tôi có thể nhìn thấy biểu tượng ở đúng vị trí hiện tại). Vấn đề là bóng được tạo tự động nằm ở vị trí sai (về chiều rộng của biểu tượng ở bên trái và khoảng nửa chừng biểu tượng).
Cảm ơn trước sự giúp đỡ của bạn!
Xin lỗi tôi đã quá lâu để trả lời, đi nghỉ. Dù sao, điều này làm việc - mặc dù tôi đã tự giải quyết nó bằng cách chuyển đổi thành ItemizedOverlay.boundCenterBottom(), ghi lại các giá trị được thiết lập, quay lại Lớp phủ của tôi và nhập các giá trị đó. : P Tôi đã có một sự hiểu biết xấu về cách hộp giới hạn hoạt động. –