4

我试图更改标记的颜色。更改Google地图V2中的标记颜色

我有这样的:

private void addMarker(GoogleMap map, double lat, double lon, 
         int title, int snippet) { 
    map.addMarker(new MarkerOptions().position(new LatLng(lat, lon)) 
            .title(getString(title)) 
            .snippet(getString(snippet))); 

,然后这个添加标记:

addMarker(map, 40.748963847316034, -73.96807193756104, 
       R.string.title, R.string.snippet); 

我想改变标志的颜色,我认为这将是很容易,只是实现它像这样:

private void addMarker(GoogleMap map, double lat, double lon, 
         int title, int snippet, int icon) { 
    map.addMarker(new MarkerOptions().position(new LatLng(lat, lon)) 
            .title(getString(title)) 
            .snippet(getString(snippet)) 
             .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.(getString(icon))); 

和:

addMarker(map, 40.748963847316034, -73.96807193756104, 
       R.string.title, R.string.snippet, HUE_AZURE); 

但我显然不能将“getString”与“.icon”一起使用。

我该怎么做?

此外,API 8+支持的颜色更改方法是什么?我有很多的支持API问题8+如果这打破了东西,将吸...

回答

5

这里是一个循环,我将用不同的颜色标记在地图上,它为我的伟大工程:

for (Task tempTask : TasksListAppObj.getInstance().tasksRepository.getTasksRepository()) 
       { 
        LatLng latlng = new LatLng(tempTask.getLatitude(), tempTask.getLongtitude()); 
        if (tempTask.getStatus().contentEquals(TasksListActivity.STATUS_WAITING)) 
        { 
         newmarker = map.addMarker(new MarkerOptions().position(latlng).title(tempTask.getTitle()).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_for_map_blue))); 
        } 
        else if (tempTask.getStatus().contentEquals(TasksListActivity.STATUS_IN_PROGRESS)) 
        { 
         newmarker = map.addMarker(new MarkerOptions().position(latlng).title(tempTask.getTitle()).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_for_map_bordo))); 
        } 
        else if (tempTask.getStatus().contentEquals(TasksListActivity.STATUS_ON_THE_WAY)) 
        { 
         newmarker = map.addMarker(new MarkerOptions().position(latlng).title(tempTask.getTitle()).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_for_map_turkiz))); 
        } 
        else if (tempTask.getStatus().contentEquals(TasksListActivity.STATUS_COMPLETE)) 
        { 
         newmarker = map.addMarker(new MarkerOptions().position(latlng).title(tempTask.getTitle()).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_for_map_orange))); 
        } 
        else if (tempTask.getStatus().contentEquals(TasksListActivity.STATUS_FAILED)) 
        { 
         newmarker = map.addMarker(new MarkerOptions().position(latlng).title(tempTask.getTitle()).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_for_map_purpul))); 
        } 
} 

看看它是否对您有所帮助。

if语句用于更改标记图标。

+0

我需要得到图标某种程度上像在我的代码位置/标题/段工作,用getString。 – Edalol 2013-05-08 13:53:24

+0

但图标的图像不是字符串,而是资源。所以你应该使用BitmapDescriptorFactory.fromResource方法得到它。 – 2013-05-08 13:59:01

+0

对不起,真的很慢,但我将如何实现在我目前的代码在这里? 为标题和片段我使用.title(getString(title)) 我会用什么.icon? – Edalol 2013-05-08 14:02:21

4

下面的代码片段的伎俩,我没有依赖关系:

BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE); 

myMap.addMarker(new MarkerOptions() 
    .position(point) 
    .icon(bitmapDescriptor) 
    .title(point.toString())); 

在这里找到它:http://android-er.blogspot.de/2013/01/change-marker-color-of-googlemaps-v2.html

+0

谢谢你,这是完美的谁是懒惰的,并希望使用默认的标记,改变颜色只需调用marker.setIcon(bitmapDescriptor); :d – 2017-04-17 06:20:36

相关问题