0

在我的项目中,我只有一个dimens.xml 文件,在完成我的项目后,我决定为其他屏幕尺寸创建dimens 文件。所以我开始创建 values-mdpi 目录并在其中放置一个 dimen.xml 文件。但现在我在 values-mdpi dimens 文件中定义的每个维度资源都适用于所有屏幕!换句话说,通用尺寸文件被忽略了。但是,如果我定义 value-xxxhdpi 一个地方,我的设备的资源就可以正常工作。但为什么?如果我没有为特定密度定义一个维度文件,它必须从一般的 dimens.xml 中获取资源,不是吗?

4

2 回答 2

0

密度特定的资源将匹配最低匹配类型。

因此,如果您创建一个values-mdpi文件夹,任何 MDPI 或更高版本的设备(大多数设备)都将使用该文件夹中的任何现有值,否则将回退到默认值。

您的values-xxxhdpi文件夹可能不适用于您的设备,因为您的设备不符合 XXXHDPI 规范。它可能是 XXHDPI 或 XHDPI。

你应该改变你的逻辑。不要为低密度设备创建特殊布局,而是为高密度设备创建特殊布局。

于 2018-11-08T22:17:16.993 回答
0

请创建一个名为“ values-nodpi ”的文件夹,并在其中放置general,它应该在那里工作!这应该有帮助!

注意!:虽然 android 确实提供了对 highdpi 文件夹的支持,并且会自动将其退回到较低的文件夹,但这样做更好,但它会影响性能

于 2018-11-09T18:18:06.310 回答