Android: Wie man XML Dimen Variablen programmatisch setzt

7

In meinen Layout-XML-Dateien referenziere ich viele Parameter über separate Dateien namens dimens.xml .

Zum Beispiel enthält dimens.xml Parameter wie diese:

%Vor%

Und in meinem main.xml würde ich zum Beispiel die Textgröße für ein TextView einstellen, indem ich etwas wie folgt mache:

%Vor%

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.

    
capcom 18.08.2012, 14:46
quelle

4 Antworten

12
  

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.

    
CommonsWare 18.08.2012, 15:13
quelle
7

Nein, Sie können die Ressourcen-Dateien zur Laufzeit nicht bearbeiten, sie sind bereits kompiliert und generiert.

    
kristoffz 18.08.2012 14:54
quelle
1

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 .

    
Igor Filippov 18.08.2012 14:53
quelle
1

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: Ссылка

    
herre 30.07.2013 13:49
quelle

Tags und Links