Android 当前密度缺失时的默认密度值
我有一个关于密度以及Android如何为当前密度选择正确的Android 当前密度缺失时的默认密度值,android,resources,Android,Resources,我有一个关于密度以及Android如何为当前密度选择正确的values文件夹的问题。我想我已经找到了答案,但我不完全确定,所以我会发布我的发现。至少,这篇文章可以帮助一些人 例如,如果我只包括文件夹值、值hdpi和值xxhdpi,当当前密度为xhpdi时,Android会做什么 Android似乎在寻找密度更高的文件夹,因此它将使用值xxhdpi 当电流密度为xxxhdpi时会发生什么 看起来,如果Android找不到密度更高的文件夹,它会找一个密度更低的文件夹,所以它也会使用值xxdpi An
values
文件夹的问题。我想我已经找到了答案,但我不完全确定,所以我会发布我的发现。至少,这篇文章可以帮助一些人
例如,如果我只包括文件夹值
、值hdpi
和值xxhdpi
,当当前密度为xhpdi
时,Android会做什么
Android似乎在寻找密度更高的文件夹,因此它将使用值xxhdpi
当电流密度为xxxhdpi时会发生什么
看起来,如果Android找不到密度更高的文件夹,它会找一个密度更低的文件夹,所以它也会使用值xxdpi
Android永远不会使用默认的values
文件夹来处理某些特定的values-*dpi
文件夹中定义的值
总之,假设我只有值
,值xxhdpi
和值hdpi
:
中的值将用于密度为值hdpi
、ldpi
和mdpi
的设备hdpi
中的值将用于密度值xxhdpi
、xhdpi
和xxhdpi
的设备xxxhdpi
- 如果在任何
文件夹中定义了Values-*dpi
中的值,则永远不会使用这些值Values
谢谢密度限定符是资源匹配工作方式的一个例外 屏幕像素密度是一个限定符,但由于 导致矛盾。即使设备的屏幕密度是 hdpi、可牵引端口ldpi/未被消除,因为每个屏幕 此时,密度被认为是匹配的 当系统正在寻找特定密度的资源时 在密度特定目录中找不到它,它不会始终使用 默认资源。系统可以使用另一个 密度特定资源,以便在以下情况下提供更好的结果: 缩放比例。例如,在寻找低密度资源时 如果不可用,系统倾向于缩小高密度 资源的版本,因为系统可以轻松地扩展 高密度资源下降到低密度的系数为0.5,具有 与将中等密度资源按比例缩放一个 系数为0.75
因此,在密度
的情况下,Android可能会使用默认文件夹,但也可能会决定使用不完全匹配的文件夹。当然,具体化是关于可绘制的资源的,但该机制可能对所有其他资源也适用。否则,drawables
可能会与其他资源不匹配,因为它们是使用不同的规则选择的。谢谢,我看到文档在这方面不是很具体。“系统可以使用其他密度特定资源之一”。我想这就是我问题的“答案”。)@FerranMaylinch这可能是因为有太多不同屏幕规格的设备,系统有时会决定使用一些不完全匹配的密度文件夹,而不是默认的。我认为他们不想精确地记录这个机制,因为它可能经常被改变和调整,所以他们不希望开发人员依赖它。谢谢。这对我来说并不明显,你是对的。花了几个小时直到我意识到。。。