Tôi đang làm việc trên ứng dụng Android và tôi có thể hiển thị nhiều biểu tượng trên bản đồ bằng ItemizedOverlay và tôi cũng đã triển khai phương thức onTap (int index) của ItemizedOverlay để hiển thị thông tin biểu tượng cụ thể trong cửa sổ yêu cầu.setFocus (overlayItem) của ItemizedOverlay không hoạt động
Bây giờ, tôi muốn thay đổi biểu tượng của lớp phủ đã chọn khi người dùng nhấp vào một số đối tác khác. Tôi đang gọi phương thức setFocus (OverlayItem) của ItemizedOverlay để hiển thị biểu tượng khác nhau của lớp phủ cụ thể. nó hoạt động tốt khi người dùng chạm vào bất kỳ lớp phủ cụ thể nào nhưng không thay đổi biểu tượng khi tôi gọi phương thức setFocus (OverlayItem).
Mọi con trỏ? cách tốt nhất của biểu tượng thay đổi chương trình của lớp phủ đã chọn trong mapView là gì?
Tôi đã bỏ qua phương thức getMarker của lớp OverlayItem tùy chỉnh của tôi để hiển thị các điểm đánh dấu khác nhau cho trạng thái khác nhau của overlayItem. và tôi muốn sử dụng phương thức setFocus (OverlayItem) để thay đổi trạng thái của OverlayItem và cũng thay đổi điểm đánh dấu khi được chọn.
@Override
public Drawable getMarker(int stateBitset){
if(stateBitset==0){
icon = Util.getCategoryMapIcon(0);
icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0);
return icon;
}else {
icon = Util.getCategoryMapIcon(OverlayItem.ITEM_STATE_SELECTED_MASK);
icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0);
return icon;
}
}
tại đây Util.getCategoryMapIcon (0) là phương pháp tiện ích để trả về biểu tượng thích hợp, phương pháp này tôi đã xóa để làm cho ví dụ này trông đơn giản.
và dưới đây là mã để thay đổi trạng thái
Button leftNavigation = (Button) findViewById(R.id.left_navigation_button);
leftNavigation.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
OverlayItem item = searchResultsOverlay.get(index+1);
setFocus(item);
}
});
Bất kỳ trợ giúp sẽ được nhiều đánh giá cao. Cảm ơn, Aamir
Có may mắn với câu trả lời này không? Hãy theo dõi. –
Cảm ơn Roman. Nó hoạt động rất tốt. –