2017-05-14 84 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);