In meinen Layout-XML-Dateien referenziere ich viele Parameter über separate Dateien namens dimens.xml
.
Zum Beispiel enthält dimens.xml
Parameter wie diese:
Und in meinem main.xml
würde ich zum Beispiel die Textgröße für ein TextView
einstellen, indem ich etwas wie folgt mache:
Es funktioniert großartig.
Nun, meine Frage ist, ist es möglich, die Werte für die dimen
Variablen in meiner dimen.xml
Datei programmatisch von meiner Hauptaktivität aus zu setzen? Was ich versuche, ist, die Bildschirmgröße zu holen und zum Beispiel die textSize
basierend auf einem Bruchteil der Höhe des Bildschirms einzustellen, so dass sie leicht an jede Bildschirmgröße angepasst werden kann. Ich habe alles herausgefunden, ich brauche nur Ihre Hilfe, um herauszufinden, wie die Variablen dimen
in meinem Code festgelegt werden.
Nun, meine Fragen sind, ist es möglich, die Werte für die Dimen-Variablen in meiner Datei dimen.xml programmgesteuert aus meiner Hauptaktivität zu setzen?
Nein.
Was ich versuche, ist, die Bildschirmgröße zu holen und z. B. die textSize basierend auf einem Bruchteil der Höhe des Bildschirms einzustellen, so dass sie leicht an jede Bildschirmgröße angepasst werden kann.
Dies ist ein seltsamer UI-Ansatz. Dies können Sie tun, indem Sie Ihre android:textSize
-Attribute löschen und die Textgröße zur Laufzeit mit setTextSize()
in Java ändern.
Ich habe alles herausgefunden, ich brauche nur deine Hilfe, um herauszufinden, wie man die Dimen-Variablen in meinem Code einstellt.
Sie legen nicht die Dimen-Variablen fest. Sie wenden Ihre Berechnungen über Setter wie setTextSize()
auf die Widgets an.
Sie sollten in allen Ihren Ressourcen dichteunabhängige Pixel verwenden, damit sich die Dimensionen an die Bildschirmgröße anpassen können. Sie müssen diese Werte zur Laufzeit nicht berechnen. Wenn Sie ein anderes Layout für verschiedene Bildschirmgrößen haben möchten, sollten Sie mehrere Ressourcendateien verwenden.
Lesen Sie diesen Leitfaden .
Ich denke, was Sie meinen, ist die Größe abhängig von der Bildschirmgröße des Geräts zu ändern. Dies kann durch die Erstellung mehrerer dimens.xml Dateien in Ordnern wie Werte-hdpi, Werte-xhdpi, Werte-xxhdpi, Werte-mdpi, .. und dann zur Laufzeit der Compiler wählt die Dimen abhängig von der dpi Ich habe das vorher nicht versucht, aber ich habe es gelesen hier .. sieh dir das an: Ссылка