我有和android项目为不同的屏幕resoultions提供不同的dimens.xml。我是通过在my / res文件夹中定义values-swXXXdp文件夹来实现的。
但是,我现在无法区分以下两种屏幕分辨率:
到目前为止我尝试了什么:
是否有人提示,我必须使用哪个文件夹名称,仅为屏幕分辨率2提供dimens.xml?
提前谢谢!
答案 0 :(得分:0)
是否有人提示,我必须使用哪个文件夹名称,仅为屏幕分辨率2提供dimens.xml?
我认为这是不可能的,至少不是 w 或 h 限定符。为什么?根据Android开发者的Providing Resources指南,您可以指定加载某些资源所需的最小屏幕宽度或高度,但不能指定最大值。
让我们看一下如果你有这样的资源组织会发生什么:
res/
values/
values-h1024dp/
Android拥有匹配资源的defined behavior,具体取决于设备配置。当您在屏幕高度为800dp的设备上打开应用程序时,最佳匹配将为values
,因为1024dp不适合800dp。但是,如果您在屏幕高度为1024 或更高的较大设备上打开相同的应用,则会使用values-h1024dp
目录。
不幸的是,您只想将第二个资源目录用于某些尺寸的设备,即768dpx1024dp。
在Android中提供资源的方式与您期望的方式不同,但具有way to achieve what you need - 别名资源。
要提供资源目录结构,其中只有一个目录与配置w1024dp的设备匹配,我将创建以下结构:
res/
values/
values-h1024dp/
values-h1025dp/
在values-h1025dp
中创建包含values
中资源别名的xml文件。这样,您可以拥有一个与屏幕高度为1024dp的设备匹配的所有设备的资源文件。
请注意,它适用于具有您指定配置的设备,但仅适用于横向模式,因为我只使用 h 限定符。