当我在我的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();