Java 单击地图上的更改标记图标

Java 单击地图上的更改标记图标,java,android,google-maps,Java,Android,Google Maps,您好,我正在制作谷歌地图应用程序,在我的应用程序中添加面积测量功能,在面积测量中,用户单击地图,标记设置在定点区域如果用户指向七个位置,则七个标记设置在定点位置,但我更改每个点上的标记图标,但图标从未更改请帮助我更改每次单击时的标记图标 My code is public void onMapReady(final GoogleMap googleMap) { mMap = googleMap; marker = BitmapDesc

您好,我正在制作谷歌地图应用程序,在我的应用程序中添加面积测量功能,在面积测量中,用户单击地图,标记设置在定点区域如果用户指向七个位置,则七个标记设置在定点位置,但我更改每个点上的标记图标,但图标从未更改请帮助我更改每次单击时的标记图标

 My code is

     public void onMapReady(final GoogleMap googleMap) {
            mMap = googleMap;
            marker = BitmapDescriptorFactory.fromResource(R.drawable.marker);
            pointaa = BitmapDescriptorFactory.fromResource(R.drawable.pointaa);
            pointb = BitmapDescriptorFactory.fromResource(R.drawable.pointb);

            changeView(getSharedPreferences("settings", Context.MODE_PRIVATE)
                    .getInt("mapView", GoogleMap.MAP_TYPE_NORMAL));

            mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
                @Override
                public boolean onMarkerClick(final Marker clickcount) {

                    marker = BitmapDescriptorFactory.fromResource(R.drawable.marker);
                    pointaa = BitmapDescriptorFactory.fromResource(R.drawable.pointaa);
                    pointb = BitmapDescriptorFactory.fromResource(R.drawable.pointb);
                    addPoint(clickcount.getPosition());

                    return true;
                }
            });



            mMap.setOnMapClickListener(new OnMapClickListener() {
                @Override
                public void onMapClick(final LatLng center) {
                    clickcounter=clickcounter+1;
    if (clickcounter==1){
        if (marker!=null){
            Toast.makeText(getApplicationContext(),"1",Toast.LENGTH_SHORT).show();
            marker = BitmapDescriptorFactory.fromResource(R.drawable.marker);

        }



    }if (clickcounter==2){
                        Toast.makeText(getApplicationContext(),"2",Toast.LENGTH_SHORT).show();
                        pointaa = BitmapDescriptorFactory.fromResource(R.drawable.pointaa);
                        addPoint(center);


                    }if (clickcounter==3){
                        Toast.makeText(getApplicationContext(),"3",Toast.LENGTH_SHORT).show();
                        pointb = BitmapDescriptorFactory.fromResource(R.drawable.pointb);
                        addPoint(center);

                    }

                }
            });


      private Marker drawMarker(final LatLng center) {
            return mMap.addMarker(
                    new MarkerOptions().position(center).flat(true).anchor(0.5f, 0.5f).icon(pointb).icon(pointaa).icon(marker));

        }

您可以更改标记图标,如下所示

Marker marker = new MarkerOptions().position(center).flat(true).anchor(0.5f, 0.5f);
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker); 
   // Changing marker icon
marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker_icon)));
使用下面的代码

  mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {

                marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));

                return true;
            }
        });

在这段代码中,只设置了.icon(marker)其他两个图标没有设置我正在使用if-else语句,例如if(clickcount==1){Toast.makeText(getApplicationContext(),“1”,Toast.LENGTH_SHORT).show();marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));结果是标记被覆盖。默认标记显示,自定义标记显示在默认标记的背面,我想更改地图上的每个标记单击此解决方案有效,但唯一的颜色是更改我想更改2或3colors@HassanAliMughal我没明白你的意思,你能理解吗请详细解释到底是什么问题。@MayurRajvir我的观点是:-我使用switch语句来使用标记的颜色地图中有8种标记的颜色,我使用clickcounter,如果我单击9单击地图,默认颜色设置为9标记,并且从不更改10和10+标记颜色意味着8种颜色是更改的,但9或9+颜色不变