Android 2.2 휴대 전화에서 ItemizedOverlay를 사용하여 MapView에 핀을 배치하면 배치가 올바르지 만 4.0 및 4.1 휴대 전화에서 배치를 수행하면 배치가 잘못됩니다. 핀은지도에서 더 아래쪽에 있지만 동일한 x 좌표로 배치됩니다.MapView 좌표가 잘못됨
내 2.2 장치에서와 같이 4.XX 장치에서 MapView의 왼쪽 위 모서리의 픽셀 값이 (0.0)이 아니라는 것을 알았습니다. 차이점은 액션 막대의 높이 (이미지에서 강조 표시된 것과 같음)를 볼 수 있었고 높이를 얻으려면 코드를 찾았습니다. 이제, 핀을 배치 할 때 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();