7 Stimmen

Wie kann ich automatisch unterschiedliche Ressourcen für helle und dunkle Themen in Android anzeigen?

Soweit ich weiß, gibt es zwei eingebaute Themen für Android, Light und Dark. Ich möchte, dass meine Anwendung unterschiedliche Ressourcen anzeigt, je nachdem, welches Thema der Benutzer verwendet (NICHT, indem der Benutzer explizit ein Thema in meiner App angeben!). Ist dies möglich? Wenn ja, ist es möglich, über xml-Ressourcen zu tun, oder ist ein programmatischer Ansatz erforderlich?

Anmerkung: Ja, ich habe gelesen http://d.Android.com/guide/topics/ui/themes.html mindestens dreimal. Es scheint, wie alles, was es mir sagt, wie zu tun ist, ist ein bestimmtes Thema oder Stile, um mein Element zu setzen, anstatt helle/dunkle Elemente richtig anzuzeigen.

4voto

michalbrz Punkte 3088

Ja, dies kann über XML-Ressourcen erfolgen.

De https://developer.Android.com/preview/features/darktheme#themes_and_styles :

Ihre Themes und Styles sollten keine fest kodierten Farben oder Icons enthalten, die für die Verwendung unter einem Light-Theme vorgesehen sind. Sie sollten stattdessen Themenattribute (bevorzugt) oder für die Nacht qualifizierte Ressourcen verwenden.

Ja, es gibt also Ressourcenqualifizierer dafür, siehe https://developer.Android.com/guide/topics/resources/providing-resources.html#NightQualifier : night et notnight Suffixe.

Ich finde Website zum Thema Material Ich kann das ziemlich gut erklären, aber der wichtigste Teil ist:

Alternativ können Sie, wenn Sie separate Light et Dark Themen für Ihre Anwendung zu erstellen, können Sie erben von Theme.MaterialComponents.Light im values Verzeichnis, und Theme.MaterialComponents im values-night Verzeichnis. z.B.:

res/values/themes.xml

<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light">
    <!-- ... -->
</style>

res/values-night/themes.xml

<style name="Theme.MyApp" parent="Theme.MaterialComponents">
   <!-- ... -->
</style>

0voto

Sebastian Roth Punkte 10944

Auf dieser Website können Sie nach alternativen zeichnungsfähigen Ordnern suchen.

http://developer.Android.com/guide/topics/resources/providing-resources.html

Auch dieses Dokument könnte hilfreich sein. http://developer.Android.com/guide/topics/ui/themes.html

Für regelmäßige Themen: Mir ist nicht bekannt, dass es in Android diesbezügliche Funktionen gibt, Sie müssen sie möglicherweise selbst entwickeln.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X