在Google地图版本2中将可绘制的图像设置为标记
我正在使用这部分代码在Google地图版本2的MapFragment中添加一个标记。 
 MarkerOptions op = new MarkerOptions(); op.position(point) .title(Location_ArrayList.get(j).getCity_name()) .snippet(Location_ArrayList.get(j).getVenue_name()) .draggable(true); m = map.addMarker(op); markers.add(m); 
我想使用我的drawable中的不同图像。 任何帮助将不胜感激。
 这是如何设置可Drawable的Marker 。 
 BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.current_position_tennis_ball) MarkerOptions markerOptions = new MarkerOptions().position(latLng) .title("Current Location") .snippet("Thinking of finding some thing...") .icon(icon); mMarker = googleMap.addMarker(markerOptions); 
  VectorDrawables和基于XML的Drawables 不适用于此。 
  @卢卡斯·诺瓦克的答案是没有显示任何东西,因为你还必须设置Drawable的边界。 
  这适用于任何可绘制的。  这是一个完全可行的例子: 
 public void drawMarker() { Drawable circleDrawable = getResources().getDrawable(R.drawable.circle_shape); BitmapDescriptor markerIcon = getMarkerIconFromDrawable(circleDrawable); googleMap.addMarker(new MarkerOptions() .position(new LatLng(41.906991, 12.453360)) .title("My Marker") .icon(markerIcon) ); } private BitmapDescriptor getMarkerIconFromDrawable(Drawable drawable) { Canvas canvas = new Canvas(); Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); canvas.setBitmap(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return BitmapDescriptorFactory.fromBitmap(bitmap); } 
circle_shape.xml
 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <size android:width="20dp" android:height="20dp"/> <solid android:color="#ff00ff"/> </shape> 
 如果你有编程创build的Drawable (所以你没有资源),你可以使用这个: 
 Drawable d = ... // programatically create drawable Canvas canvas = new Canvas(); Bitmap bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); canvas.setBitmap(bitmap); d.draw(canvas); BitmapDescriptor bd = BitmapDescriptorFactory.fromBitmap(bitmap); 
 然后你有BitmapDescriptor ,你可以传入MarkerOptions 。