解释drawable,drawable-ldpi,drawable-mdpi和drawable-hdpi之间的区别

Ste*_*ice 13 android android-screen-support android-drawable

我粗略地了解了这些目录的用途,但我对这个概念并不是很清楚,而且我有一些具体的问题.

例如,每个目录的目标DPI是多少?创建资产时,它应该是该目标DPI还是应该是更正常的72dpi屏幕DPI?如果您要定位多个设备,是否适合将PNG放入drawable中,或者您是否应始终为特定屏幕量身定制多个版本?

谢谢.

Fel*_*lix 36

正如其他人所建议的那样,Android在线文档中有很多关于此的文章.但是,我将尝试在此处列出一些快速且有用的提示:

  1. 考虑MDPI是1.然后,LDPI是0.75和HDPI 1.5.这意味着,如果您有一个可绘制的,例如,50x50在MDPI屏幕上,它必须~37x37位于LDPI屏幕和75x75HDPI屏幕上,以便在每个屏幕上显示大致相同的物理尺寸(即2cm如果你在屏幕上放一个标尺).此外,您的计算机屏幕很可能是 MDPI,这就是为什么建议从MDPI drawables开始然后调整它们的大小:在您的计算机屏幕和MDPI Android设备之间,drawable 的物理大小非常接近.如果您在计算机和HDPI设备上查看HDPI可绘制,您会注意到它在PC屏幕上的尺寸大得多(再次,物理上 - 在它上面放一个标尺).
  2. 如果您不为每个密度提供特殊的drawable,Android将自动缩放最接近的一个.
  3. 您不应该将设备的DPI视为与屏幕尺寸和/或像素数和/或分辨率和/或纵横比有关.设备可能非常小并且具有HDPI屏幕或非常大且具有LDPI屏幕.这种密度差异化的关键在于在所有设备上看起来大小相同,并非在所有设备上都相同.例如,如果drawable在一个MDPI设备上填充整个屏幕,则不要指望它在另一个MDPI设备上执行相同操作.此外,不要指望在不同的DPI设备上"看到相同的东西".大多数HDPI设备实际上比较低DPI设备有更多空间.例如,如果一个ListView可以在MDPI设备上显示5个项目,它可能能够在HDPI设备上显示6个项目,尽管这些ListView项目具有相同的密度无关(即HDPI上的项目大于MDPI上的1.5倍) )身高.

我可能会有点偏离主题,但这些都是我通过敲击他们的方式及时学到的东西.只是想拯救别人的头痛:)

  • 这可能有点帮助:http://blog.blundell-apps.com/list-of-android-devices-with-pixel-density-buckets/ (3认同)