我在http://developer.android.com/guide/practices/screens_support.html的相关文档中遇到了一些令人困惑的歧义,而且我找不到一个能够澄清这个问题的stackoverflow答案。
我很清楚文档中所说的内容:
密度无关像素(dp)相当于160dpi屏幕上的一个物理像素,这是系统默认的“中等”密度屏幕基线密度。在运行时,系统会根据实际使用的屏幕密度自动处理dp单位的任何缩放。将dp单位转换为屏幕像素很简单:px = dp * (dpi / 160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。您应该始终使用dp单位来定义应用程序的UI,以确保在具有不同密度的屏幕上正确显示您的UI。
问题在于他们在公式中对“dp”的定义是什么。根据页面下方的图形,似乎mdpi级别设备的“实际密度”涵盖了一系列值,大约在120到200之间。这是否意味着160 dpi对于mdpi级别设备可以映射到120到200个像素之间的任何位置?还是说mdpi级别设备总是将160 dpi转换为160个像素?
我很清楚文档中所说的内容:
密度无关像素(dp)相当于160dpi屏幕上的一个物理像素,这是系统默认的“中等”密度屏幕基线密度。在运行时,系统会根据实际使用的屏幕密度自动处理dp单位的任何缩放。将dp单位转换为屏幕像素很简单:px = dp * (dpi / 160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。您应该始终使用dp单位来定义应用程序的UI,以确保在具有不同密度的屏幕上正确显示您的UI。
问题在于他们在公式中对“dp”的定义是什么。根据页面下方的图形,似乎mdpi级别设备的“实际密度”涵盖了一系列值,大约在120到200之间。这是否意味着160 dpi对于mdpi级别设备可以映射到120到200个像素之间的任何位置?还是说mdpi级别设备总是将160 dpi转换为160个像素?