1
私は4つのタブを持つビューページャーを持っていて、タブの1つにマップがあります。 実行時にGoogleMapマーカーのアイコンをアンドロイドに変更します。私は、次のコードアンドロイドgooglemapマーカーのアイコンが変更されていません
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_menu, container, false);
mMapView = (MapView) rootView.findViewById(R.id.mapView);
mMapView.onCreate(savedInstanceState);
mMapView.onResume(); // needed to get the map to display immediately
try {
MapsInitializer.initialize(getActivity().getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
mMapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap mMap) {
googleMap = mMap;
// For showing a move to my location button
googleMap.setMyLocationEnabled(true);
// For dropping a marker at a point on the Map
/* googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker Title").snippet("Marker Description")).
setIcon(BitmapDescriptorFactory.fromResource(R.drawable.position_icon));*/
googleMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
sydney=new LatLng(location.getLatitude(), location.getLongitude());
googleMap.addMarker(new MarkerOptions().position(sydney).title(""))
.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.position_icon));
CameraPosition cameraPosition = new CameraPosition.Builder().target(sydney).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.logo));
return false;
}
});
}
});
// For zooming automatically to the location of the marker
/* */
}
});
return rootView;
}
をしました。しかし、残念ながら、私は、それが変更されたが、数秒後に前のマーカーが新しいマーカーアイコンに重なっています、マーカーのアイコンをタップします。 上記のコードはTabLayoutの最初のタブで、私は地図を持っているとそれは断片だと言いました。
場所が変わるたびに新しいマーカーが追加されているため、この問題が発生しています。マーカーをクリックすると、そのアイコンは**ロゴ**に変わりますが、数秒後にも位置が変わり、コードに** position_icon **の新しいマーカーが追加されます。新しい位置は新しいマーカーは古いマーカーと重なります。 –
@HarjotSinghOberaiこの目標を達成するための解決策があります – Sandro
達成しようとしていることを詳しく教えてください。 –