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