Получение коэффициента масштабирования экрана (screen.scale_factor)
Объявление
local factor = screen.scale_factor()
Возвращаемое значение
- factor
Число, задающее соотношение между пикселями экрана текущего устройства и логическими точками (pt).
Описание
Возвращаемое значение используется для пересчёта между физическим разрешением экрана в пикселях и логической системой координат.
Распространённые значения: 2.0 (большинство Retina iPhone и iPad), 3.0 (серии Plus/Max и современные полноэкранные iPhone). У современных iPhone практически нет устройств без Retina с коэффициентом 1.0.
Вместе сscreen.size()позволяет пересчитать размер в логических точках:width_pt = width_px / factor. Поиск изображений и получение цветов по-прежнему выполняются в пикселях; преобразование нужно только при работе с координатами точек интерфейса.
Пример
-- Пересчёт разрешения в пикселях в логические точки
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))
-- Корректировка координат интерфейса по коэффициенту масштабирования
local x_point, y_point = 100, 200 -- Координаты точек из Apple HIG или описания интерфейса стороннего разработчика
local x_px, y_px = x_point * scale, y_point * scale
touch.tap(x_px, y_px)
Примечание: приведённый выше код использует функции не из этой главы: sys.log, touch.tap.