import org.osmdroid.views.overlay.Marker; //导入方法依赖的package包/类
void updateUIWithFriendsMarkers() {
//retrieve the id of the “opened” friend (friend with opened bubble):
int opened = getOpenedInfoWindow(mFriendsMarkers);
String openedFriendId = null;
if (opened != -1) {
Marker m = (Marker)mFriendsMarkers.getItems().get(opened);
Friend openedFriend = (Friend)m.getRelatedObject();
openedFriendId = openedFriend.mId;
}
mFriendsMarkers.closeAllInfoWindows();
mFriendsMarkers.getItems().clear();
if (mFriends == null) {
mMap.invalidate();
return;
}
Drawable iconOnline = mActivity.getResources().getDrawable(R.drawable.marker_car_on);
Drawable iconOffline = mActivity.getResources().getDrawable(R.drawable.marker_friend_off);
for (Friend friend : mFriends) {
//MarkerLabeled marker = new MarkerLabeled(map);
Marker marker = new Marker(mMap);
marker.setPosition(friend.mPosition);
marker.setTitle(friend.mNickName);
marker.setSnippet(friend.mMessage);
if (friend.mOnline) {
marker.setIcon(iconOnline); //((BitmapDrawable) iconOnline).getBitmap());
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER);
marker.setRotation(friend.mBearing);
} else {
marker.setIcon(iconOffline); //((BitmapDrawable)iconOffline).getBitmap());
}
if (!friend.mHasLocation)
marker.setEnabled(false);
marker.setRelatedObject(friend);
mFriendsMarkers.add(marker);
}
mMap.invalidate();
//reopen the bubble on the “same” (but new) Friend marker:
opened = getFriendWithId(openedFriendId);
if (opened != -1) {
Marker markerToOpen = (Marker) mFriendsMarkers.getItems().get(opened);
markerToOpen.showInfoWindow();
}
}