根据 android 文档,密度应以dpi(每英寸点数)为单位,所有布局测量应以dp为单位。
并使用一个简单的公式 android 可以将dp映射到实际像素。
px = dp * (dpi / 160),
160dpi ~ medium density screen which is the baseline
那么为什么不直接使用ppi(每英寸像素数)来描述屏幕密度呢?
根据 android 文档,密度应以dpi(每英寸点数)为单位,所有布局测量应以dp为单位。
并使用一个简单的公式 android 可以将dp映射到实际像素。
px = dp * (dpi / 160),
160dpi ~ medium density screen which is the baseline
那么为什么不直接使用ppi(每英寸像素数)来描述屏幕密度呢?
根据我的阅读,这是基于设计的区别;开发人员不应该担心他们部署到的各个屏幕,并且应该在应用程序中使用 dp 以使其在不同的 android 设备上尽可能便携。
对于资产设计师来说,显示尺寸和图像清晰度更为重要,而dpi的区别对他们来说很重要。
有关更多信息,请查看 Google 工程师撰写的这篇文章/电子书:
http://sebastien-gabriel.com/designers-guide-to-dpi/
特别要查看“PPI 配置”部分。引用文章:
无论初始 PPI 配置如何,任何非打印都使用像素大小......软件中的 PPI 配置是打印遗留问题。如果您只为 Web 设计,PPI 不会对您的位图大小产生任何影响。
关于这个问题有很多文档,但我认为这部分与您的问题相关:
密度独立
当您的应用程序在具有不同密度的屏幕上显示时,它保留了用户界面元素的物理尺寸(从用户的角度来看),从而实现了“密度独立性”。
保持密度独立性很重要,因为没有它,UI 元素(例如按钮)在低密度屏幕上会显得更大,而在高密度屏幕上会显得更小。这种与密度相关的大小变化可能会导致应用程序布局和可用性出现问题。图 2 和图 3 分别显示了不提供密度独立性和提供密度独立性的应用程序之间的差异。