我有一个移动设备上的应用程序。我正在将我的应用程序的分辨率从 240W x 320L 更改为 640W X 480L。
我有一堆宽度以像素为单位的列(例如 55)。我需要将其转换为新分辨率。
“简单”,我认为 640/240 = 2 2/3。所以我只取 55 * 2.6666667,这是我的新宽度。
唉,那没用。我的列(全部)现在大于我的屏幕尺寸。
我试过 55 * 2,那太小了。我确信我可以通过试错到达那里,但我想知道一个确切的比率。
那么,我错过了什么?我该如何计算我的新列宽(而不是通过反复试验)。
最佳答案
四舍五入是你的问题;假设您在 240 像素显示器上有 24 列 10 像素。您计算新的宽度:10*2.667 = 27,因此总宽度总和为:648 > 640。糟糕...
要做到这一点,您需要缩放列的绝对位置。也就是说,如果列号 k 从 x 坐标 = X 开始,那么在缩放之后它应该从 round(X*2.667) 开始。在此之后,从圆形左侧 X 中减去圆形右侧 X 以获得宽度。通过这种方式,您可以将宽度向下舍入并向上舍入一些宽度,但总宽度将保持在您的限制范围内。
关于algorithm - 如何计算屏幕分辨率变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3842500/