Benutzerdefinierte Schrift in Android wird in verschiedenen APIs unterschiedlich dargestellt

Ich verwende eine benutzerdefinierte .ttf-Schriftart in meiner Android-App. Ich lade es wie gewohnt:

myTypeface = Typeface.createFromAsset( getAssets(), "myTypeface.ttf");

dann ordne ich meine schrift in meiner tätigkeit zu ... ziemlich einfaches zeug:

TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setTextSize(12);
tv.setTypeface(App.myTypeface);

Das Problem, auf das ich stoße, ist, dass auf einigen Geräten, die spätere APIs verwenden (ich habe es speziell in einem Emulator für den Asus Transformer bemerkt), der Text etwas fetter, weniger gleichmäßig in der Breite und mehr durcheinander in der vertikalen Ausrichtung erscheint. Mit diesem letzten Teil meine ich, dass einige Zeichen vertikal etwas höher oder niedriger platziert sind als andere, was dem Text ein wenig Achterbahngefühl verleiht.

Betrachten Sie die Screenshots unten

Dies ist Text, der auf einem Emulator mit der gleichen Auflösung und Auflösung wie ein Transformer, jedoch mit Google API Level 8, gerendert wird.

Sieht ziemlich normal aus, oder?

Betrachten Sie nun den Text, der in einem Emulator mit der gleichen Auflösung und Auflösung, aber mit der Google API-Stufe 15 gerendert wurde:

Auf den ersten Blick sieht der Text möglicherweise ähnlich aus, obwohl Sie vielleicht bemerken, dass er etwas mutiger wirkt. Schauen Sie sich jedoch das "c" in "quick" an. Sie werden feststellen, dass es niedriger sitzt und höher ist als das "c" im ersten Rendering. Sie werden auch feststellen, dass die Zeichen, die Sie am unteren Rand des Wortes "schnell" betrachten, nicht am unteren Rand ausgerichtet sind.

Diese Probleme mögen klein erscheinen, aber auf Bildschirmen mit viel Text sieht es unprofessionell aus.

Hat das jemand gesehen oder eine Erklärung? Ich würde den Text gerne in späteren APIs einheitlich aussehen lassen.

Vielen Dank für Ihre Zeit!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage