Zum Hauptinhalt springen

Bildschirm-Skalierungsfaktor abrufen (screen.scale_factor)

Deklaration

local factor = screen.scale_factor()

Rückgabewert

  • factor
    Zahl; Multiplikator zwischen den Bildschirmpixeln des aktuellen Geräts und logischen Punkten (pt)

Beschreibung

Der Rückgabewert dient zur Umrechnung zwischen der tatsächlichen Pixelauflösung des Bildschirms und dem logischen Koordinatensystem.
Häufige Werte: 2.0 (die meisten Retina-iPhones und iPads), 3.0 (Plus/Max-Modelle und neuere iPhones mit vollflächigem Bildschirm). Moderne iPhones verwenden praktisch keine Nicht-Retina-Skalierung von 1.0.
Zusammen mit screen.size() können logische Punktabmessungen berechnet werden: width_pt = width_px / factor. Bildsuche und Farbabfrage basieren weiterhin auf Pixelabmessungen; eine Umrechnung ist nur bei UI-basierten Punktkoordinaten erforderlich.

Beispiel

-- Pixelauflösung in logische Punkte umrechnen
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-Koordinaten anhand des Skalierungsfaktors anpassen
local x_point, y_point = 100, 200 -- Punktkoordinaten aus Apples HIG oder einer UI-Beschreibung eines Drittanbieters
local x_px, y_px = x_point * scale, y_point * scale

touch.tap(x_px, y_px)

Hinweis: Der obige Code verwendet die Funktionen sys.log und touch.tap, die nicht zu diesem Kapitel gehören.