一位发帖人建议使用一个名为SDP的项目来回答有关 Android 密度独立机制的问题。他辩解说:
它可以帮助Android开发者支持多屏
为什么一般来说这是一个糟糕的答案或一个坏主意?
多种原因:
这个项目采用的方法可以说是无用的,甚至是破坏性的。
破坏性的,因为它破坏了 Android 的密度独立性。它需要很少缩放的图像来匹配显示器的实际每英寸像素属性,因为它们是为该设备的通用密度而设计的。它可以将它们放大,甚至在 10 英寸平板电脑上放大 2.6 倍。这必然导致位图模糊或像素化。
没用是因为:
无论如何,您首先不希望在更大的设备上使用更大的物理尺寸。你不想拿一个应用程序,只是在更大的屏幕上缩放所有东西。这就是苹果公司在 2010 年首次推出 iPad 时所做的事情,人们讨厌它。
您想要的是限制文本、按钮和其他不应过度拉伸的 UI 元素的宽度。您还希望获得更大的利润。但是你可以通过为大屏幕提供替代布局来处理这个问题,而不是通过摆弄 Android 如何处理屏幕密度。该文件同意我的观点。
如果您真的希望某些图形在大屏幕上更大(您通常不应该这样做,这里的第二张图像非常好,除了水平拉伸),那么您应该通过为每个尺寸/密度提供可绘制对象来处理它您想要支持的配对。例如drawable-hdpi
, drawable-xhdpi
, drawable-sw720dp-hdpi
, drawable-sw720dp-xhdpi
。这样,位图就不需要为那些更大的屏幕缩放,并且将以高质量显示。
屏幕截图没有为每个设备使用相同的比例。Nexus 7 看起来和 Nexus One 一样小。
保留比例后,使用项目时的对比如下:
像这样,当不使用它时:
该项目涉及物理尺寸而不是屏幕密度。它所做的是根据不同的物理屏幕尺寸缩放单位。
它不适用于所提出的问题。这可以解释为“Android 如何概括实际的屏幕密度?”。