我如何为每个标记设置不同的图标

时间:2016-04-02 07:42:00

标签: android android-layout listview android-fragments android-studio

如何为每个标记设置不同的图标,从服务器接收标记经度和纬度,并在地图屏幕上绘制每个设备的逻辑和纬度,并在每5秒钟中删除先前的标记。请帮助我如何为每个标记设置不同的图标..

 try {
            //ArrayList list = new ArrayList<>();
            //TODO: remove previus markers
            if (marker != null) {
                mMap.clear();
                Toast.makeText(getApplicationContext(), "Remove", Toast.LENGTH_LONG).show();

            }
            for (LatLng object : latLngList)

            marker = mMap.addMarker(new MarkerOptions().title("User Name").position(object).icon(BitmapDescriptorFactory.fromResource(R.drawable.female4)));

            System.out.println(marker.getId()+"  Marker id.......");
        } catch (Exception e) {
            Toast.makeText(MainActivity.this, "Error ", Toast.LENGTH_LONG).show();
            // mMap.clear();
        }

1 个答案:

答案 0 :(得分:1)

     Try this 

      private void showMap(ArrayList<ModelLatLong> list) {
        double latitude = 0;
        double longitude = 0;
        try {

            googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

            googleMap.setMyLocationEnabled(true);

            // Enable / Disable zooming controls
            googleMap.getUiSettings().setZoomControlsEnabled(true);

            // Enable / Disable my location button
            googleMap.getUiSettings().setMyLocationButtonEnabled(true);

            // Enable / Disable Compass icon
            googleMap.getUiSettings().setCompassEnabled(true);

            // Enable / Disable Rotate gesture
            googleMap.getUiSettings().setRotateGesturesEnabled(true);

            // Enable / Disable zooming functionality
            googleMap.getUiSettings().setZoomGesturesEnabled(true);

            // lets place some 10 random markers
            for (int i = 0; i <= list.size(); i++) {

                latitude = list.get(i).getLatitude();
                longitude = list.get(i).getLongitude();

                // Adding a marker
                MarkerOptions marker = new MarkerOptions().position(new 

               LatLng(list.get(i).getLatitude(),list.get(i).getLongitude()))

              .title(i + ":"+ list.get(i).getMarkerName().toString());

         // changing marker color
                if (i == 0)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
                if (i == 1)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
                if (i == 2)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_CYAN));
                if (i == 3)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
                if (i == 4)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
                if (i == 5)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
                if (i == 6)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_RED));
                if (i == 7)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_ROSE));
                if (i == 8)
                    marker.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_VIOLET));

                marker.icon(BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW));

                googleMap.addMarker(marker);
                CameraPosition cameraPosition = new CameraPosition.Builder()
                        .target(new LatLng(list.get(i).getLatitude(), list
                                .get(i).getLongitude())).zoom(15).build();

                googleMap.animateCamera(CameraUpdateFactory
                        .newCameraPosition(cameraPosition));

            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }