In einer Scrabble-ähnlichen Wortspiel-App versuche ich, schwarze Buchstaben und Werte zu zeichnen auf gelben Fliesen.
Das funktioniert bei Android-Emulatoren unter Windows und Mac:
Dies funktioniert nicht (die Textgröße ist zu groß) auf realen Geräten wie Moto G, Nexus 1 und 4:
Ich definiere die Textgrößen von 60sp und 20sp (ich habe versucht, dp ) in res / values /dimens.xml :
%Vor%Und dann benutze sie in meinem BigTile.java Klasse:
%Vor%Was mache ich falsch?
Eine Sache, die Ihnen in den Sinn kommt, ist, dass Sie sp
-Werte verwenden, die von den Benutzereinstellungen in den Einstellungen / Anzeige / Schriftgröße abhängen. Können Sie überprüfen, ob die Einstellung wie Large
oder so ist - dies würde eine zusätzliche Skalierung Ihrer Schriftgröße zur Folge haben. Auch glaube ich, dass für 2.x-Geräte die Standardeinstellung anders ist als für 4.x-Geräte (nicht sicher).
Sie könnten versuchen, dp
-Werte zu verwenden und zu sehen, ob das einen Unterschied macht.
Das Problem besteht darin, dass setTextSize den Größenwert in SP und nicht in Pixel erhält. In Ihrem Fall konvertiert getDimensionPixelSize sp in Pixel, und setTextSize behandelt die Pixel dann als sp und skaliert erneut.
public void setTextSize (Gleitkommagröße)
Legen Sie die Standardtextgröße auf den angegebenen Wert fest, der als "skaliert" interpretiert wird Pixel "Einheiten. Diese Größe wird basierend auf der aktuellen Dichte und angepasst Präferenz der Benutzerschriftgröße.
Um dies zu beheben, können Sie
anrufen %Vor% Die Verwendung von dp
für die Textgrößen ist definitiv der richtige Weg, wenn Sie nicht möchten, dass die Schriftgröße des Benutzers manuell angepasst wird, indem Sie auch Ihre Bilder skalieren.
Ihr Problem besteht darin, dass Ihr big_tile
image in den mdpi (128x128) und xxhdpi (256x256) Varianten inkonsistente Größen hat: xxhdpi sollte die dreifache Auflösung von mdpi haben, aber Ihr Bild ist nur 2x die Größe, was es effektiv macht ~ 85dp statt 128dp.
Ich bin mir ziemlich sicher, dass ich Android Lint vor solchen Dingen gewarnt habe, versuche es in deinem Projekt.
Tags und Links android android-resources text-size