2017-05-24 2 views
0

Ich habe mit diesem Problem für eine Weile gekämpft:Wie skaliere ich Textgröße mit Bildschirmabmessungen?

Ich verwende Leinwand, um Text auf den Bildschirm, für meine Android-App zu zeichnen. Gerade jetzt, ich bin mit dieser der Textgröße zu skalieren:

float scaledTextSize = textSize * getResources().getDisplayMetrics().density; 
paint.setTextSize(scaledTextSize); 

es ein wenig skaliert, aber nicht in vollem Umfang behält ihr „Größenverhältnis“ im Vergleich zu den aktuellen Bildschirmabmessungen. Ich habe auch versucht, die Methode mit einer Dimension aus einer Ressource-Datei, aber nichts geändert.

Zum Beispiel, wenn ich die Textgröße eingestellt für ein Nexus 5 Bildschirm geeignet zu sein, wäre es für ein Nexus 7 zu klein sein, und ein wenig zu groß für ein Nexus 4.

Jede mögliche Hilfe werde geschätzt!

Antwort

0

Konvertieren Sie zunächst die Textgröße von sp nach Pixel, anstatt dp zu verwenden.

Maßstabsunabhängige Pixel wird zum Festlegen der Schriftgrößen verwendet, sodass sie sowohl für die Bildschirmdichte als auch für die Benutzereinstellungen angepasst werden.

int spSize = 12;//your sp size 
    // Convert the sp to pixels 
float scaledTextSize = spSize * getResources().getDisplayMetrics().scaledDensity; 

dann gesetzt Farbe SetTextSize

paint.setTextSize(scaledTextSize); 
+0

Danke für die Antwort, aber ich versuchte es und didn Es scheint nicht zu funktionieren. – redside100

Verwandte Themen