You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SmallBasic(LitDev)屏幕缩放问题:如何实现16:9比例下视图一致平移适配

现有代码逻辑解释

你当前的计算逻辑是分别按桌面宽度/原窗口宽度、桌面高度/原窗口高度计算两个独立的缩放系数,直接拉伸窗口铺满全屏,再用固定除数做偏移:

  • distanceWidth / 2 是把水平方向多出来的宽度两边均分,实现水平居中效果
  • distanceHeight / 1.3 是你调试出来的经验值,刚好能把内容移到你需要的位置,没有通用适配性。

16:9固定比例适配实现方案

要保持16:9比例不变形、视图完全一致,首先要统一两个方向的缩放系数,不能单独按宽高各自缩放,实现步骤如下:

  1. 先确认原窗口是标准16:9比例:1080/607.5=1.777...=16/9,符合要求
  2. 取宽、高两个缩放系数的最小值作为统一缩放值,避免内容拉伸超出屏幕
  3. 按你需要的对齐规则计算偏移量即可,不需要依赖经验值调整

完整实现代码

' 原16:9窗口基础尺寸
gw = 1080
gh = 607.5
GraphicsWindow.Width = gw
GraphicsWindow.Height = gh
GraphicsWindow.Left = 0
GraphicsWindow.Top = 0

' 获取桌面实际尺寸
dw = Desktop.Width
dh = Desktop.Height

' 计算双向统一缩放系数,保持16:9比例不变
scaleX = dw / gw
scaleY = dh / gh
unifiedScale = Math.Min(scaleX, scaleY)

' 计算缩放后内容的实际宽高
scaledWidth = gw * unifiedScale
scaledHeight = gh * unifiedScale

' 偏移量设置:需要左上角对齐直接设为0即可
panX = 0
panY = 0
' 若需要居中对齐,替换上面两行为以下代码即可
' panX = (dw - scaledWidth) / 2
' panY = (dh - scaledHeight) / 2

' 执行重定位,旋转角度固定为0
LDGraphicsWindow.Reposition(unifiedScale, unifiedScale, panX, panY, 0)

调整规则

如果需要微调内容位置,直接修改panX(水平偏移,正数向右、负数向左)和panY(垂直偏移,正数向下、负数向上)的数值即可,所有比例下的视图都会保持完全一致。

内容的提问来源于stack exchange,提问作者Caleb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:15:03