2017-02-03 46 views
0

我從Eclipse更改爲Android Studio。我正面臨模擬器密度的問題。 例如,在Eclipse中,三星S4的密度爲xxhdpi,但在Android Studio中爲xhdpi。 三星S4:4,99' - 1080 X 1920Android Studio密度

這是我的代碼:

Float density = getResources().getDisplayMetrics().density; 

if(density >= 1.0 && density < 1.5){ //mdpi 
... 
} else if(density >= 1.5 && density < 2.0){ //hdpi 
... 
} else if(density >= 2.0 && density < 3.0){ //xhdpi 
... 
} else if(density >= 3.0 && density < 4.0){ //xxhdpi 
... 
} else if(density >= 4.0){ //xxxhdpi 
... 
} 

密度值是2.625。所以進入xhdpi的情況下,但我需要進入xxhdpi! 問題是什麼?有一個更好的方法嗎?。

感謝

+0

你真的在你的代碼中有這個'if's鏈嗎?如果是這樣,你很可能做錯了或不理想的事情。 – Henry

+0

是的,我有。爲什麼?例如,我使用dp,wrap_content等嘗試在每個屏幕上工作,但有時需要手動調整一些大小或位置 – user3240604

+0

這通常是通過將值放入資源文件中完成的。您可以爲不同的屏幕尺寸或密度提供不同的版本。代碼本身是乾淨的,只是獲取資源價值。 – Henry

回答

0

將這個代碼在你的manifest.xml

<supports-screens android:anyDensity="true" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:resizeable="true" 
    android:smallScreens="true" 
    android:xlargeScreens="true"/> 

希望它會幫助你。