5
我只是想在地图视图的中心显示一个人脚下的图标。这里是我的叠加代码:为什么我的MapView覆盖图的阴影在错误的地方?
public class CenterOverlay extends Overlay
{
private Drawable d;
public CenterOverlay(Drawable drawable)
{
final int w = drawable.getIntrinsicWidth();
final int h = drawable.getIntrinsicHeight();
drawable.setBounds(0, 0, w, h);
this.d = drawable;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
final int mapCenterX = mapView.getWidth()/2;
final int mapCenterY = mapView.getHeight()/2;
final int x = mapCenterX - d.getIntrinsicWidth()/2;
final int y = mapCenterY - d.getIntrinsicHeight();
drawAt(canvas, d, x, y, shadow);
}
}
的代码添加到的MapView工作正常叠加(我能看到它应该是图标右侧)。问题在于自动生成的阴影出现在错误的位置(图标左侧的宽度以及图标的一半左右)。
在此先感谢您的帮助!
对不起,我花了这么长时间来回答,去度假。无论如何,这工作 - 虽然我自己通过转换为ItemizedOverlay.boundCenterBottom()来解决它,记录它设置的值,回到我的覆盖并输入这些值。 :P我对边界框的工作原理很不了解。 – 2010-07-13 17:22:52