Android 使用了错误的资源
我有两种不同屏幕尺寸的布局:Android 使用了错误的资源,android,android-resources,Android,Android Resources,我有两种不同屏幕尺寸的布局: layout layout-w580dp 显示纵向和横向的度量日志: DisplayMetrics{density=1.3312501, width=800, height=1280, scaledDensity=1.5841876, xdpi=216.0, ydpi=216.0} DisplayMetrics{density=1.3312501, width=1280, height=800, scaledDensity=1.5841876, xdpi=216.
layout
layout-w580dp
显示纵向和横向的度量日志:
DisplayMetrics{density=1.3312501, width=800, height=1280, scaledDensity=1.5841876, xdpi=216.0, ydpi=216.0}
DisplayMetrics{density=1.3312501, width=1280, height=800, scaledDensity=1.5841876, xdpi=216.0, ydpi=216.0}
Potrait方向具有800/1.5841876=504dp
,因此应使用layout
文件夹中的资源。
横向方向具有1200/1.5841876=704dp
,因此应使用layout-w580dp
文件夹中的资源。但是,在这两个方向中,资源都是从
layout-w580dp
文件夹获得的。是什么导致了这个问题?根据从dp转换为物理像素的公式是
px=dp*(dpi/160)
。由于我们想要以相反的方向转换,我们需要求解dp
:dp=px*160/dpi
。对于您的两个示例,我们有以下值和计算:
px=800
(宽度),dpi=216
(xdpi)dp=px*160/dpi=800*160/216=592.59
px=1280
(宽度),dpi=216
(xdpi)dp=px*160/dpi=1280*160/216=948.15
在这两种情况下,宽度大于580 dP.
将<代码>布局土地< /代码>在这里更合适吗?@代码学徒,我认为它是平板电脑,它们可以有足够的空间来在纵向方向上进行广泛的布局。我不知道Android是如何选择使用哪个布局文件夹的规则。