當我在我的Android 2.2手機上使用ItemizedOverlay將引腳放置在MapView中時,位置是正確的,但是當我在4.0和4.1手機上使用它時,放置是錯誤的。該針腳放置在地圖的下方,但具有相同的x座標。MapView座標錯誤
我發現4.XX設備上MapView左上角的像素值不是(0.0),因爲它在我的2.2設備上。我可以看到不同之處在於操作欄的高度(如圖中突出顯示的高度),並找到了一些代碼來獲取它的高度。現在,放置引腳時,我從MapView中的y座標中減去操作欄的高度。我在我的4.XX設備上得到了正確的結果,但現在我的2.2設備上的位置是錯誤的。
我在屏幕的頂部添加了一個,但它的高度在我的所有設備上都差不多。
你知道我應該怎麼做才能在所有設備上的MapView中獲得正確的座標?
我使用的代碼是:
final WindowManager w = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
final Display d = w.getDefaultDisplay();
final DisplayMetrics m = new DisplayMetrics();
d.getMetrics(m);
int totalHeight =mapView.getLayoutParams().height;
int statusbarHeight = totalHeight - mapView.getMeasuredHeight();