2011-08-04 1 views
7

Tôi đang tạo một ứng dụng bản đồ trong đó tôi có 20 dữ liệu nhà hàng và tôi muốn hiển thị tất cả nhà hàng trong Bản đồ bằng cách sử dụng lớp phủ pin.Now vấn đề thực tế của tôi là tôi muốn hiển thị số chỉ mục mỗi và mỗi pin (ví dụ nếu 20 pin là có, tất cả các pin nên được với chỉ số 1,2, 3 đại diện cho nhà hàng không có trong danh sách). bất cứ ai có thể cho tôi biết làm thế nào tôi có thể đặt số chỉ mục trên hình ảnh pin duy nhất .. ?? i muốn sử dụng cùng một hình ảnh cho lớp phủCách đặt số chỉ mục trên hình ảnh ghim bản đồ

+0

cho điều này bạn có vòng lặp cho mảng có thể drawable (img với số chỉ mục) đối với số lượng dấu vị trí bạn nhận được ... – Hanry

+0

là có cách nào để thêm số chỉ mục trên cùng một hình ảnh ... giả sử trong tương lai kết quả của tôi nhận được increse sau đó img với số chỉ mục là không đúng tùy chọn. –

+0

bạn có thể sử dụng balloonOverlay nhưng nó chỉ được nhìn thấy khi bạn chạm vào nhãn hiệu đó :( – Hanry

Trả lời

3

Đây là thực tế tôi đã phát hiện sau trong dự án của tôi: MapView thực sự là một ViewGroup (also mentioned here). Vì vậy, thay vì sử dụng Overlay phức tạp và gắn các drawables, bạn chỉ cần tạo một nút (hoặc một textview, hoặc một số bố trí lồng nhau, hoặc bất cứ thứ gì bạn muốn hiển thị phía trên bản đồ), gán cho nó một cá thể MapView.LayoutParams và thêm nó vào MapView.

Trong mã:

// Create the overlay pin 
View overlayPin = getLayoutInflater().inflate(R.layout.overlay_pin, null); 
// Number it according to your question, e.g. 
((TextView)(overlayPin.findViewById(R.id.overlay_text))).setText("1"); 

Hãy nói rằng bạn muốn đặt pin trên geo phối -60, 30.

// Set a layout params to the pin. 
overlayPin.setLayoutParams(new MapView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, new GeoPoint(-60000000, 30000000), MapView.LayoutParams.BOTTOM_CENTER); 
// Add the pin to the map 
mapView.addView(overlayPin); 

Bằng cách này bạn có thể chỉ có một tài sản đồ họa cho nền của pin và sử dụng số TextView để đánh số.

0

Bạn cần phải mở rộng lớp drawable và ghi đè lên phương pháp vẽ. Trong đó bạn có thể sử dụng canvas.drawText để viết cho bạn số trên ghim.