2017-02-25 30 views
0

所以我把下面的值/夢詩 & 值/夢詩,MDPI理解的Android值/夢詩

<dimen name="rv_height">220dp</dimen> 
<dimen name="rv_width">280dp</dimen> 

價值觀xxhdpi以下/夢詩

<dimen name="rv_height">260dp</dimen> 
<dimen name="rv_width">320dp</dimen> 

我的問題是,當我運行這個480 x 800 hdpi API 17模擬器,爲什麼它加載維度值從xxhdpi文件夾而不是常規維度維度-mdpi文件夾?

回答

2

根據Official docs

爲了簡化您設計了多個 屏用戶界面的方式,Android的分裂實際屏幕尺寸的範圍和 密度分爲:

LDPI(低)〜 120DPI

MDPI(介質)〜160dpi

HDPI(高)〜240dpi

xhdpi(超高)〜320dpi

xxhdpi(超超高壓)〜480dpi

xxxhdpi(特超超高壓)〜640dpi

編輯:

我會盡量解釋給你聽:

hdpi上480px的設備具有320dp,因爲根據文檔,「在240dpi屏幕上,1dp等於1.5個物理像素」。意味着400 px /1.5 = 320 dp。再根據文檔

然而,當系統

現在,你有值/夢詩 & 值/夢詩,MDPI & & 價值觀xxhdpi /夢詩

和正在尋找一個密度特定的資源 ,並沒有找到它在密度特定的目錄,它不會 總是s使用默認資源。系統可以使用其他密度特定資源中的一個,以便在縮放時提供更好的結果 。例如,當查找低密度資源並且該資源不可用時,系統傾向於縮減資源的高密度版本,因爲系統可以很容易地將高密度資源縮減至低密度因子爲0.5, ,僞像較少,而中等密度資源的因子爲 ,因子爲0.75。

結論:在沒有res-directory的情況下,默認目錄總是被使用,這不是受權人。在你的情況下,它已經將高密度資源縮減爲低密度資源。

我希望現在很清楚。

+0

您沒有回答我的問題。 – ThunderRoid

+0

實際上我做了,你正在運行一個480 dpi屏幕密度的設備,並且你創建了文件夾'values-xxhdpi/dimens',這意味着你的應用程序將使用這個文件夾中存在的值! –

+0

這就是分辨率不是dpi,dpi是hdpi – ThunderRoid