2011-09-21 42 views
8

Cố gắng thay đổi điểm đánh dấu từ mục lớp phủ Tôi nhận thấy setMarker() làm cho mục không hiển thị. Đây là mẫu mã.Android OverlayItem.setMarker(): Thay đổi điểm đánh dấu cho một mục

//Create new marker 
Drawable icon = this.getResources().getDrawable(R.drawable.marker); 

//Set the new marker to the overlay 
overlayItem.setMarker(icon); 
+0

Bạn đã tìm thấy một giải pháp cho việc này? Tôi đang đối mặt với cùng một vấn đề. gọi setMarker() với một drawable cụ thể làm cho biểu tượng vô hình ... – MobileCushion

+1

Bạn phải xác định hình chữ nhật bounding bằng cách sử dụng 'setBounds()' – slybloty

+1

thực sự hoạt động, bạn nên trả lời câu hỏi;) – MobileCushion

Trả lời

11

Một hình chữ nhật bounding cần được xác định cho drawable:

//Create new marker 
Drawable icon = this.getResources().getDrawable(R.drawable.marker); 

//Set the bounding for the drawable 
icon.setBounds(
    0 - icon.getIntrinsicWidth()/2, 0 - icon.getIntrinsicHeight(), 
    icon.getIntrinsicWidth()/2, 0); 

//Set the new marker to the overlay 
overlayItem.setMarker(icon); 
0

Tôi tin rằng điều này sẽ làm việc:

public void addOverlay(final OverlayItem overlay) 
    { 
     creditOverlay.add(overlay); 
     populate(); 
     boundCenter(customMarker); 
    } 

Bạn sẽ phải gọi boundCenter hoặc boundCenterBottom khi thêm lớp phủ trong danh sách bản đồ lớp phủ. Trong SetMarker() chỉ cần đặt nhà sản xuất tùy chỉnh.

+0

Điều này sẽ khiến tất cả các mục cần sử dụng cùng một điểm đánh dấu, trừ khi phương thức được thay đổi thành: 'addOverlay (OverlayItem, Drawable) – slybloty

Các vấn đề liên quan