安卓像素定位有效,但不应该



我一直在使用像素在表面视图上定位东西(位图,文本)。例如,为了居中,我将取代表屏幕的矩形宽度和高度的一半。屏幕宽度和高度按预期返回。我的手机(480*800)报告的可用屏幕为442*800,密度为1.5,在240*320模拟器上运行时,报告的可用屏幕为221*320,密度为0.75。

但是这些值,当然是像素,所以肯定要居中,我应该先乘以密度因子,然后再减半。奇怪的是,所有东西都完美地集中在低分辨率模拟器和我的高分辨率手机上。这对我来说没有意义。

在两个屏幕上,为了让文本显示相同,我使用密度缩放值设置大小,正如我所期望的那样,这是有效的。

在清单中,我已经声明支持所有屏幕尺寸(尽管在我这样做之前我也看到了相同的"正确"行为)

为什么像素值"工作"没有我调整他们的密度?我现在很困惑。

像素就是像素!

它是屏幕和尺寸的最小公分母。

密度是一个测量单位(通常是一英寸)包含多少像素。在物理显示器上。

例如,物理宽度为5英寸,分辨率为500x1000,则密度为200dpi(5英寸1000像素)。物理宽度为4英寸,具有相同的分辨率,则密度为250dpi(每4英寸1000像素)。

x=500(宽度的一半)是两个屏幕的中心,与密度无关。事实上,对于任何尺寸、任何密度的屏幕,宽度(以像素为单位)的一半是屏幕的中心。

相关内容

最新更新