gpt4 book ai didi

java - Android 以像素为单位的定位可以工作,但不应该

转载 作者:行者123 更新时间:2023-12-02 07:21:36 25 4
gpt4 key购买 nike

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

但是这些值肯定是像素,因此为了使某些值居中,我应该在减半之前首先乘以密度因子。奇怪的是,在低分辨率模拟器和我的高分辨率手机上,一切都完美居中。这对我来说没有意义。

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

在 list 中,我声明支持所有屏幕尺寸(尽管在执行此操作之前我也看到了相同的“正确”行为)

为什么像素值在我不调整密度的情况下仍然“有效”?我现在很困惑。

最佳答案

像素就是像素!

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

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

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

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

关于java - Android 以像素为单位的定位可以工作,但不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com