Android 不同屏幕的dimens.xml不同

Android 不同屏幕的dimens.xml不同,android,Android,我必须为两种不同类型的设备提供两种不同的字体大小。第一组是较小的设备(如Nexus S或高度约为480px的设备),第二组是所有其他手机(如Galaxy Nexus、Nexus 4、5等)。我已经支持平板电脑了 现在,我创建了一个values-sw320dp文件夹,其中包含一个dimens.xml,供小型设备使用,还有一个默认值文件夹,其中包含它们的dimens.xml,以支持所有其他手机 问题是sw320dp文件夹中的dimens.xml到处都应用。 我是否应该为这些设备创建values-sw

我必须为两种不同类型的设备提供两种不同的字体大小。第一组是较小的设备(如Nexus S或高度约为480px的设备),第二组是所有其他手机(如Galaxy Nexus、Nexus 4、5等)。我已经支持平板电脑了

现在,我创建了一个
values-sw320dp
文件夹,其中包含一个
dimens.xml
,供小型设备使用,还有一个默认值文件夹,其中包含它们的
dimens.xml
,以支持所有其他手机

问题是
sw320dp
文件夹中的
dimens.xml
到处都应用。 我是否应该为这些设备创建
values-sw340dp
values-sw360dp
文件夹?如果要按设备的最小宽度存储设备,则默认
values
文件夹中的
dimens.xml
的用途是什么?设备如何将自身放入密度桶中,查找其最近的
sw dp
文件夹或什么


我知道这个问题以前被问过一千次,但我真的无法用谷歌搜索出来,也无法在上面找到它。

Nexus S是一款常见的hdpi设备(240 dpi),分辨率为480x800像素。
因此,您可以使用
值hdpi
来存储该设备的
dimens.xml

您可能会考虑支持较小的设备,如<强> MdP< <强>或<强> LDPI < /强> >。


还有“不太小”的设备(即:xhdpixxhdpi)。

有不同类型的限定符(IMHO),其中一种负责密度,另一种更关注屏幕大小,还有一些用于平板电脑的标识符。它不仅有一个像文件夹的hdpi这样的后缀,你还可以使用其中的两个

您可以在官方网站上找到更多信息:

我不应该使用新的软件限定符而不是密度标识符吗?它们是很久以前引进的。它们工作得很好。sw限定符对平板电脑很有用,因为这些限定符使用更高的分辨率,但密度较低(通常是mdpi或hdpi)。那么有没有办法只支持带有
values hdpi
文件夹的hdpi设备,并使用默认的
values
文件夹来支持所有其他手机?或者我应该制作与密度桶一样多的
文件夹?好吧,你应该制作与你想要支持的密度一样多的桶。或者,至少,如果一个密度和另一个密度之间存在差异(通过使用dps和sps以及9个补丁或SVG,您是非常安全的)。请记住,默认密度为mdpi(标准化为160 dpi)。在手机上,这通常有一个320x480像素的相关分辨率。