Obtener el factor de escala de la pantalla (screen.scale_factor)
Declaración
local factor = screen.scale_factor()
Valores devueltos
- factor
Tipo numérico, representa la relación entre los píxeles de la pantalla del dispositivo actual y los puntos lógicos (pt)
Descripción
El valor devuelto se usa para convertir entre la resolución real de píxeles de la pantalla y el sistema de coordenadas lógicas.
Valores habituales: 2.0 (la mayoría de los iPhone y iPad Retina) y 3.0 (las series Plus/Max y los iPhone de pantalla completa más recientes). Los iPhone modernos prácticamente no tienen un factor 1.0 no Retina.
En combinación conscreen.size()permite calcular las dimensiones en puntos lógicos:width_pt = width_px / factor. La búsqueda de imágenes y la obtención de colores siguen basándose en dimensiones de píxeles; solo es necesario convertir al trabajar con coordenadas de puntos basadas en la interfaz de usuario.
Ejemplo
-- Convierte la resolución de píxeles en puntos lógicos
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))
-- Ajusta las coordenadas de la interfaz según el factor de escala
local x_point, y_point = 100, 200 -- Coordenadas en puntos procedentes de Apple HIG o de la descripción de una interfaz de terceros
local x_px, y_px = x_point * scale, y_point * scale
touch.tap(x_px, y_px)
Nota: el código anterior usa las funciones sys.log y touch.tap, que no pertenecen a este capítulo.