不了解 com.google.android.maps.Overlay 的 drawAt() 方法
Posted
技术标签:
【中文标题】不了解 com.google.android.maps.Overlay 的 drawAt() 方法【英文标题】:Not understanding drawAt() method for com.google.android.maps.Overlay 【发布时间】:2011-01-06 22:25:38 【问题描述】:试图在一个安卓程序中制作一个谷歌地图覆盖。在叠加层的绘制方法中,我有两种添加图钉的方法。其中一个有效,一个无效。可惜,不工作的也是唯一一个有加影能力的!有什么帮助吗?
@Override
public void draw(android.graphics.Canvas canvas, MapView mapView,
boolean shadow)
Point po = mapView.getProjection().toPixels(mapView.getMapCenter(),
null);
// This does _not_ work, but I would really like it to!
drawAt(canvas, mapView.getResources().getDrawable(R.drawable.map_marker_v),
po.x, po.y, false);
// This does work, but only does half the job
canvas.drawBitmap(BitmapFactory.decodeResource(mapView.getResources(),
R.drawable.map_marker_v), po.x, po.y, null);
编辑:固定类型
【问题讨论】:
您能准确解释一下“不起作用”的含义吗?您是否在 logcat 窗口中收到任何错误消息?你的应用程序崩溃了吗?是不是画不出来之类的? 安东尼,当然!它根本不画。 logcat 中没有任何类型的错误消息,但应用程序不会崩溃 【参考方案1】:我认为您的问题可能只是因为您没有在drawAt()
中设置可绘制对象的边界。您可以使用Drawable.setBounds()
手动设置边界,也可以使用ItemizedOverlay 的便捷方法boundCenter()
或boundCenterBottom()
。
我相信第二种方法有效的原因是因为使用解码的位图,您不必指定 Drawable 的边界。
【讨论】:
【参考方案2】:乍一看,我没有发现什么可能导致您的图钉无法绘制。但是,我可能已经找到了一个临时的解决方案。
在 google 上查看将我带到 this post,用户在其中发布了他们的 Overlay 版本,能够添加图标和阴影。这可能是您正在寻找的。p>
希望这会有所帮助。
【讨论】:
谢谢!其实我也想过这样做哈哈以上是关于不了解 com.google.android.maps.Overlay 的 drawAt() 方法的主要内容,如果未能解决你的问题,请参考以下文章