大佬教程收集整理的这篇文章主要介绍了Android Google Map V2:如何在点击其他标记时更改以前点击的标记图标,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个地图视图并在其上设置了一些标记.我想要的是当我点击一个标记时,它将其图标更改为一个不同的图标,当我点击另一个标记时,前一个标记的图标应该更改为其原始图标.
@Override public Boolean onMarkerClick(Marker marker) { //Called when a marker has been clicked or tapped. LatLng markerPos=marker.getPosition(); String markerLOCATIOnName=marker.gettitle(); String markerSubCategoryName=marker.getSnippet(); marker.remove(); MarkerOptions markerOptions = new MarkerOptions().position(markerPos) .title(markerLOCATIOnName) .snippet(markerSubCategoryName) .icon(BitmapDescriptorFactory.fromresource(R.drawable.new_icon));// Changing marker icon mMap.addMarker(markerOptions); Log.d("marker","change marker icon"); // can open a dialog window here return false; }
因此,如果我单击2个标记,我将显示2个新图标,同时我想要的只是当前单击的标记更改其图标.
所以我也做了类似的事情,增加了2行@L_197_25@.它成功地做了我想要的但它有一些缺点(见下文).
@Override public Boolean onMarkerClick(Marker marker) { //Called when a marker has been clicked or tapped. mMap.clear(); populateAllMarkersOnMap();//repopulate markers on map LatLng markerPos=marker.getPosition(); String markerLOCATIOnName=marker.gettitle(); String markerSubCategoryName=marker.getSnippet(); marker.remove(); //remove the current clicked marker MarkerOptions markerOptions = new MarkerOptions().position(markerPos) .title(markerLOCATIOnName) .snippet(markerSubCategoryName) .icon(BitmapDescriptorFactory.fromresource(R.drawable.new_icon));// Changing marker icon mMap.addMarker(markerOptions); //add marker with new icon into map return false; }
缺点是1 /它“禁用”信息窗口(同样的事情也发生在第一种方式). 2 /它清除地图上的所有标记并再次设置所有标记.想象一下,我有100个标记,如果每次点击都会出现性能问题吗?
populateAllMarkersOnMap()目前可以像这样简单:
private void populateAllMarkersOnMap(){ setMarker(latA1,lonA1,"A1","A1.1"); setMarker(latA2,lonA2,"A2","A2.1"); // ... (100 times or populated via a loop) };
那么当我点击新标记时,有没有办法让以前点击的标记将其图标更改回默认值?为我的英语道歉,如果你认为我应该为我的问题添加另一个标题,请帮忙.
@Override public Boolean onMarkerClick(Marker marker) { //Called when a marker has been clicked or tapped. if(prevIoUsmarker!=null){ prevIoUsmarker.setIcon(BitmapDescriptorFactory.fromresource(R.drawable.dot_icon)); } marker.setIcon(BitmapDescriptorFactory.fromresource(R.drawable.ct_icon)); prevIoUsmarker=marker; //Now the clicked marker becomes prevIoUsmarker return false; }
以上是大佬教程为你收集整理的Android Google Map V2:如何在点击其他标记时更改以前点击的标记图标全部内容,希望文章能够帮你解决Android Google Map V2:如何在点击其他标记时更改以前点击的标记图标所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。