Java Android谷歌地图:根据不同的设备大小适当调整地图填充

Java Android谷歌地图:根据不同的设备大小适当调整地图填充,java,android,google-maps-api-2,Java,Android,Google Maps Api 2,我的MapsFragment前面有一个工具栏,因此需要相应地调整map控件的填充。然而,当我查看屏幕布局时,各种平板设备之间仍然存在差异。在SCREENLAYOUT\u SIZE\u XLARGE中,屏幕上的输出仍然存在差异。请参见下面截图中“我的位置”按钮之间的差异 如何计算“我的位置”按钮的正确贴图填充 @Override public void onMapReady(GoogleMap googleMap) { gMap = googleMap; int screenSize =

我的MapsFragment前面有一个工具栏,因此需要相应地调整map控件的填充。然而,当我查看屏幕布局时,各种平板设备之间仍然存在差异。在SCREENLAYOUT\u SIZE\u XLARGE中,屏幕上的输出仍然存在差异。请参见下面截图中“我的位置”按钮之间的差异

如何计算“我的位置”按钮的正确贴图填充

@Override
public void onMapReady(GoogleMap googleMap) {
  gMap = googleMap;
  int screenSize = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK);
  System.out.println("screenSize: " + screenSize);
  if (screenSize == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
    googleMapPadding = 75; //125 for other tablet
  } else if (screenSize == Configuration.SCREENLAYOUT_SIZE_LARGE) {
    googleMapPadding = 100;
  } else {
    googleMapPadding = 175;
  }

  gMap.setPadding(0, googleMapPadding, 0, 0);

  //other stuff
}


基本上,它只是计算操作栏的高度

 TypedValue tv = new TypedValue();
    if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
    {
      googleMapPadding = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
    }

    gMap.setPadding(0, googleMapPadding, 0, 0);