当我在我的 Android 2.2 手机上使用 ItemizedOverlay 在 MapView 中放置图钉时,放置是正确的,但是当我在 4.0 和 4.1 手机上这样做时,放置是错误的。大头针位于地图上的更下方,但具有相同的 x 坐标。
我发现 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();