跳至主要內容

取得螢幕縮放因子 (screen.scale_factor)

聲明

local factor = screen.scale_factor()

回傳值

  • factor
    數值型,表示目前裝置螢幕像素與邏輯點 (pt) 之間的倍率

說明

回傳值用於在螢幕實際像素分辨率與邏輯座標系之間進行換算。
常見值:2.0(大部分 Retina iPhone 與 iPad)、3.0(Plus/Max 系列與近年的全面屏 iPhone)。現代 iPhone 基本沒有 1.0 倍非 Retina。
screen.size() 聯用可折算邏輯點尺寸:width_pt = width_px / factor。找圖、取色依舊基於像素尺寸,只有在處理基於 UI 的點座標時才需要轉換。

範例

-- 將像素分辨率換算成邏輯點
local w_px, h_px = screen.size()
local scale = screen.scale_factor()
local w_pt, h_pt = w_px / scale, h_px / scale

sys.log(string.format("像素分辨率: %dx%d, 倍率: %.1fx, 逻辑点: %.0fx%.0f", w_px, h_px, scale, w_pt, h_pt))

-- 根據縮放因子調整 UI 坐標
local x_point, y_point = 100, 200 -- 來源於蘋果 HIG 或第三方 UI 描述的點坐標
local x_px, y_px = x_point * scale, y_point * scale

touch.tap(x_px, y_px)

:上述代碼中使用了非本章函式 sys.logtouch.tap