如何在谷歌地图Android API v2中显示具有不同图标的多个标记?

如何在谷歌地图Android API v2中显示具有不同图标的多个标记?,android,google-maps,google-maps-markers,google-maps-android-api-2,google-maps-mobile,Android,Google Maps,Google Maps Markers,Google Maps Android Api 2,Google Maps Mobile,我正在解析一个XML文件,其中包含我的Android应用程序的数据,该数据将使用Google Maps Android API v2显示在地图上。XML文件的示例格式为: <markers> <marker name="San Pedro Cathedral" address="Davao City" lat="7.0647222" long="125.6091667" icon="church

我正在解析一个XML文件,其中包含我的Android应用程序的数据,该数据将使用Google Maps Android API v2显示在地图上。XML文件的示例格式为:

<markers>
  <marker name="San Pedro Cathedral"
          address="Davao City"
          lat="7.0647222"
          long="125.6091667"
          icon="church"/>
  <marker name="SM Lanang Premier"
          address="Davao City"
          lat="7.0983333"
          long="125.6308333"
          icon="shopping"/>
  <marker name="Davao Central High School"
          address="Davao City"
          lat="7.0769444"
          long="125.6136111"
          icon="school"/>
</markers>
因为
R.drawable
仅适用于可绘制文件夹中的文件。如何根据XML上的图标属性动态显示每个标记的不同图标

任何帮助都将不胜感激。:)

要获取资源:

getResources().getIdentifier(icon,"drawable", getPackageName())
上面使用的
图标
为XML
图标
属性分配了变量

使用此选项动态获取
图标

.icon(BitmapDescriptorFactory
   .fromResource(getResources().getIdentifier(icon,"drawable", getPackageName()))
尝试如下:

// Creates a marker rainbow demonstrating how to 
// create default marker icons of different.
int numMarkersInRainbow[] = 
{
    R.drawable.arrow,
    R.drawable.badge_nsw,
    R.drawable.badge_qld,
    R.drawable.badge_victoria
};
for (int i = 0; i < markers.getLength(); i++) {
    mMap.addMarker(new MarkerOptions()
        .position(position(new LatLng(lat, lon)))
        .title(name)
        .icon(BitmapDescriptorFactory.fromResource(numMarkersInRainbow[i])));
}
//创建一个标记彩虹,演示如何
//创建不同类型的默认标记图标。
int numMarkersInRainbow[]=
{
R.drawable.arrow,
R.drawable.badge_新南威尔士州,
R.drawable.badge_qld,
R.drawable.badge_维多利亚
};
对于(int i=0;i
谢谢您的帮助。显示的图标确实不同,但它们在XML文件的marker元素中属性图标的值上并不一致。不过,谢谢你的帮助。:)
.icon(BitmapDescriptorFactory
   .fromResource(getResources().getIdentifier(icon,"drawable", getPackageName()))
// Creates a marker rainbow demonstrating how to 
// create default marker icons of different.
int numMarkersInRainbow[] = 
{
    R.drawable.arrow,
    R.drawable.badge_nsw,
    R.drawable.badge_qld,
    R.drawable.badge_victoria
};
for (int i = 0; i < markers.getLength(); i++) {
    mMap.addMarker(new MarkerOptions()
        .position(position(new LatLng(lat, lon)))
        .title(name)
        .icon(BitmapDescriptorFactory.fromResource(numMarkersInRainbow[i])));
}