2017-02-25 77 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