Android: So legen Sie XML Dimen Variablen programmgesteuert ein

In meinem Layout XML-Dateien, verweise ich eine Menge von Parametern durch eine separate Dateien namens dimens.xml .

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

  • Android-Crash mit lichtdurchlässigem Splash-Screen
  • Android Google plus Login-Button-Stil
  • Button Onclick Listener in mitgelieferten Layouts
  • Weird Verhalten beim Streaming mit Android MediaPlayer auf HTC Desire mit Android 2.2
  • Android Studio kann nicht org.junit auflösen
  • Gradle Android Plugin generieren R-Dateien für verschiedene Produkt-Aromen?
  •  <dimen name="textSize_normal">20dp</dimen> <dimen name="buttonTextSize_normal">15dp</dimen> <dimen name="editTextSize_normal">17dp</dimen> <dimen name="buttonHeight_normal">37dp</dimen> <dimen name="margin_normal">5dp</dimen> 

    Und in meiner main.xml , zum Beispiel würde ich die Textgröße für eine TextView indem du so etwas machst:

     android:textSize="@dimen/editTextSize_normal" 

    Es funktioniert super

    Nun, meine Fragen ist, ist es möglich, die Werte für die dimen Variablen in meiner dimen.xml Datei programmgesteuert aus meiner Hauptaktivität zu setzen? Was ich versuche zu tun ist, holt die Bildschirmgröße und setzt beispielsweise die textSize auf der Grundlage eines Bruchteils der Höhe des Bildschirms, so dass es leicht an jede Bildschirmgröße angepasst werden kann. Ich habe alles, was herausgefunden ist, ich brauche nur deine Hilfe, um herauszufinden, wie man die dimen Variablen in meinem Code setzt.

  • LayoutTransition: Animierte Ansicht neben einer erweiterten Ansicht
  • Erzwingt die Soft-Tastatur offen
  • Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Lcom / myapp / R $ array;
  • Wie zu speichern / wiederherstellen globale Variablen in Android, auch wenn os töten Anwendung
  • Wann sollte ich Fragmente in Android-Anwendungen verwenden? Warum Fragmente verwenden?
  • Eine Schlange von Hintergrundaufgaben in rxjava
  • 4 Solutions collect form web for “Android: So legen Sie XML Dimen Variablen programmgesteuert ein”

    Nun, meine Fragen ist, ist es möglich, die Werte für die dimen Variablen in meiner dimen.xml Datei programmgesteuert aus meiner Hauptaktivität zu setzen?

    Nein.

    Was ich versuche zu tun ist, holt die Bildschirmgröße und setzt beispielsweise die textSize auf der Grundlage eines Bruchteils der Höhe des Bildschirms, so dass es leicht an jede Bildschirmgröße angepasst werden kann.

    Ignorieren, dass dies eine ungerade UI-Ansatz ist, ist der Weg, dies zu tun, um Ihre android:textSize zu löschen android:textSize Attribute und die Textgröße zur Laufzeit mit setTextSize() in Java zu ändern.

    Ich habe alles, was herausgefunden ist, ich brauche nur deine Hilfe, um herauszufinden, wie man die dimen Variablen in meinem Code setzt.

    Sie setzen nicht die Dimenvariablen. Sie wenden Ihre Berechnungen auf die Widgets an, über Setter wie setTextSize() .

    Nein, du kannst die Resources-Dateien nicht zur Laufzeit bearbeiten, sie sind bereits kompiliert und generiert.

    Sie sollten dichteunabhängige Pixel in all Ihren Ressourcen verwenden, damit sich die Abmessungen 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, dann sollten Sie mehrere Ressourcendateien verwenden.

    Lesen Sie diese Anleitung .

    Ich denke, was du meinst, ist, die Größe abhängig von der Bildschirmgröße des Geräts zu ändern. Das kann durch das Erstellen mehrerer dimens.xml Dateien in Ordnern wie values-hdpi, values-xhdpi, values-xxhdpi, values-mdpi, Und dann zur Laufzeit der Compiler wählt die Dimen je nach dpi Ich habe eigentlich nicht versucht, dies vor, aber ich habe es hier gelesen .. werfen Sie einen Blick auf diese: http://developer.android.com/guide/practices/screens_support .html # Qualifikationen

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.