2012-03-02 158 views
0

我在Samsung S I9000上遇到問題。我的應用上的按鈕比他們應該大得多。另外,系統選擇res/values-small /作爲值的來源。總而言之,它的表現就好像該設備的屏幕很小,儘管它應該是800x480(我在橫向模式下工作)。事實上,我可以通過將res/values-small/styles.xml中的值更改爲比我已經使用的更小的字體來改善情況。Android三星S I9000屏幕尺寸和密度問題

顯示指標如下:

density = 2.0 
scaledDensity = 2.0 
densityDpi = 320 
widthPixels = 800 
heightPixels = 480 
xdpi = 320.0 
ydpi = 320.0 

任何人都可以解釋爲什麼該設備結垢我的圖形了這麼多,作爲如果我有一個非常小的顯示器?更重要的是,我該如何解決它?

我試過調整我的清單,將minSdk和targetSdk設置爲最近的版本,但是沒有任何效果。刪除值 - 小/導致應用程序使用默認值/來代替,這隻會使情況變得更糟。

+0

我不認爲有一個值小的文件夾。你也可以使用values-large和values-xlarge。什麼是你的Android操作系統版本? – 2012-03-02 07:53:29

+0

有一個值小的。請參閱http://www.efalk.org/SamsungS.tar.gz以獲取包含它的源代碼,並在任何小屏幕設備上演示它,顯然也是三星S。我相信它自1.6以來一直受到支持。請參閱http://developer.android.com/guide/practices/screens_support.html – 2012-03-06 14:53:54

+0

底線:我確信這是三星S中的一個錯誤 - 當它真的是233時,它將像素密度報告爲320.這會導致所有圖形當它真的應該是1.5倍時,將被放大2倍。它也會導致屏幕尺寸被計算爲1.5「x 2.5」,如果這是真的,那麼這將是一個小屏幕。沒有人注意到三星S上的圖標,菜單等真的很龐大?他們在模擬器上很大。 – 2012-03-06 15:00:45

回答

2

始終使用「SP」的字體和其餘爲「DP」

地方你在相應的文件夾,如下

圖像假設你是在爲MDPI使用36x36的圖片,你需要使用

drawable-mdpi - 36 x 36 
drawable-hdpi - 48 x 48 
drawable-xhdpi 72 x 72 

3:4:6:8

在某些情況下,您可能不希望Android預先縮放資源。避免預縮放的最簡單方法是使用nodpi配置限定符將資源放入資源目錄中。

例如:

res/drawable-nodpi/icon.png 

例如

你作爲器14sp意味着它會自動爲320 DPI更改爲

14×320÷160 =28 

所以現在你的字體使用的字體大小xhdpi分辨率手機的尺寸爲28dp。

+0

謝謝。我用字體爲sp;我認爲它可以通過密度或scaledDensity進行縮放?這些都不能解釋爲什麼系統從資源/價值中獲取資源 - 小。或者是因爲儘管具有高像素密度,該設備的屏幕非常小巧? – 2012-03-02 15:53:06

+0

將我的drawable移動到drawable中 - nodpi工作。謝謝。 – 2012-03-02 16:03:00