DPI 是个印刷术语,衍生到屏幕后应该叫 PPI,Pixel Per Inch,但是实际上我手头有两台华为 pad,同为 10.1 英寸,相同的分辨率 1920*1200,但是通过 DisplayMetrics.densityDpi 获取的 DPI 却并不相同,一台只有 240,另一台 8.0 系统的即使调整设置(Setting) - 显示(Display) - 显示模式( Display Size )为最小,也有 272 的 dpi,而且实际相同布局在两台 pad 上的确有比较大的差异
而根据 PPI 的公式,可以算出 dpi = 1920/(((10.1^2/(16^2+10^2))^0.5)*16)=224,这个值和 240 有点差距,可能有效计算区域稍有不同,但是和 272 差距就略大了
这就很奇怪了,就我所知,在物理尺寸不变的情况下,DPI 的变化必然会导致分辨率的变化,但实际上通过 DisplayMetrics.widthPixels 在两台 pad 上获取的值的确是 1920,而且 Display Size 的变化也会变更 dpi 的值,但不会改变分辨率,实在是想不明白,可见是我目前对 DPI、分辨率的了解存在部分缺失的认知,希望有大佬解答下
而根据 PPI 的公式,可以算出 dpi = 1920/(((10.1^2/(16^2+10^2))^0.5)*16)=224,这个值和 240 有点差距,可能有效计算区域稍有不同,但是和 272 差距就略大了
这就很奇怪了,就我所知,在物理尺寸不变的情况下,DPI 的变化必然会导致分辨率的变化,但实际上通过 DisplayMetrics.widthPixels 在两台 pad 上获取的值的确是 1920,而且 Display Size 的变化也会变更 dpi 的值,但不会改变分辨率,实在是想不明白,可见是我目前对 DPI、分辨率的了解存在部分缺失的认知,希望有大佬解答下