algorithm - 如何计算屏幕分辨率变化

标签 algorithm windows-mobile resolution screen-resolution

我有一个移动设备上的应用程序。我正在将我的应用程序的分辨率从 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/

相关文章:

c++ - 185000阵列后BFPRT(中位数中值)算法崩溃

c# - 如何在 C# 中将视频转换为字节数组?

selenium - 运行 Selenium WebDriver 时如何检查浏览器的分辨率

macos - 有没有办法知道另一个应用程序是否更改了 Cocoa 中的显示分辨率?

android - 根据图片的大小改变图片的分辨率

algorithm - 给定一组可能的起始节点,找到访问某些节点并返回的最小路径

algorithm - QML ListView 如何估计其 contentItem 的高度/宽度

algorithm - 以行方式 reshape MATLAB 向量

c# - 禁用按钮

c# - 数组作为 DataGrid 的数据源 : how to customize columns?