2017-05-14 86 views
0

我在我的MapsFragment前面有一个工具栏,所以需要相应地调整地图控件的填充。但是,当我通过screenLayout进行浏览时,各种平板设备之间仍存在差异。在SCREENLAYOUT_SIZE_XLARGE内,屏幕上的输出仍然存在差异。查看以下屏幕截图中“我的位置”按钮之间的差异Android谷歌地图:充分调整不同设备大小的地图填充

我该如何计算“我的位置”按钮的正确MapPadding?

@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 
} 

XLarge

XLarge 2

回答

0

基本上它只是计算动作条的高度。

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);