你应该如何(不)在Android上使用与密度无关的像素?

时间:2015-11-25 13:52:45

标签: android android-layout pixel-density

使用名为suggested的项目的一张海报SDP,作为有关Android密度独立机制的问题的答案。他证明了这一点,并说:

  

它可以帮助Android开发人员支持多个屏幕

为什么一般来说这是一个糟糕的答案或一个坏主意?

1 个答案:

答案 0 :(得分:1)

多种原因:

不良做法

这个项目采取的方法可以说是无用的,甚至是破坏性的。

具有破坏性,因为它打破了Android密度的独立性。它需要几乎不需要缩放的图像来匹配显示器的每英寸实际像素属性,因为它们是针对该设备的广义密度而设计的。它可以扩展它们,甚至可以扩展到on 10″ tablets的2.6倍。这必然会导致模糊或像素化的位图。

无用因为:

首先,您不希望在较大的设备上使用更大的物理尺寸。你不想拿一个应用程序,只是在更大的屏幕上扩展所有内容。这就是Apple在2010年首次亮相时所做的事情和people hated it

做的想要的是限制不应过度拉伸的文本,按钮和其他UI元素的宽度。您还需要更大的利润。但是,您可以通过为大屏幕提供替代布局来解决这个问题,而不是通过摆弄Android处理屏幕密度的方式。 documentation同意我的意见。

如果你真的希望某些图形在大屏幕上更大(你通常不应该这样,第二张图像在这里完全没问题,除了水平拉伸),那么你应该通过为您想要支持的每个尺寸/密度对提供drawable来处理它。例如drawable-hdpidrawable-xhdpidrawable-sw720dp-hdpidrawable-sw720dp-xhdpi。这样,位图不需要针对那些更大的屏幕进行缩放,并且将以高质量显示。

误导性

screenshots对每个设备使用相同的比例。 Nexus 7看起来和Nexus One一样小。

保留比例时,使用项目时比较如下:

The UI is physically bigger on Nexus 7 because it is scaled up.

就像这样,不使用时:

The UI is physically the same size on both devices, because Android handles density independence and is not obstructed.

不相关的

该项目涉及物理尺寸而非屏幕密度。它的作用是根据不同的物理屏幕尺寸来缩放单位。

它不适用于被问到的问题。这可以解释为“Android如何概括实际的屏幕密度?”。