2016-04-19 18 views
0

Kann ich zwei völlig unterschiedliche colors.xml für zwei verschiedene Themen definieren? In meinem Fall zum Beispiel verwenden wir viel mehr verschiedene Farben in Paletten, die in Thema von Standart definiert (Android: ColorPrimary, Android: ColorAccent, Android: ColorBackground usw.). Hoffe, dass meine Frage klar ist. Wenn nicht, frag mich bitte in Kommentaren.Benutzerdefinierte Themen und Farben in android

+0

Sie können für verschiedene Aktivitäten –

+1

anderes Thema erstellen, wenn Sie mehrere Themen in Ihrem Anwen unterstützen mögen Kation, Sie müssen geeignete Attribute für jedes Thema festlegen und dann für jedes Attribut Stile definieren. Anschließend können Sie die Methode setTheme der Aktivität aufrufen, um das aktuelle Thema festzulegen. –

+0

Es ist nicht möglich, eine dynamische color.xml zu erstellen. Sie können jedoch unterschiedliche Ressourcendateien mit einem anderen Namen erstellen. Außerdem können Sie diese Farbressourcendateien als Eingabefarben für Ihr Design verwenden. –

Antwort

2

Ok, nach ein bisschen Suche fand ich eine Lösung wie diese. Designer will nicht colorPrimary usw. verwenden, so dass ich hinzufügen meine benutzerdefinierte Attribute in attrs wie folgt aus:

<attr name="colorExperiment" format="color"/>

Danach ich hinzufügen, um dieses attr in Stile Thema wie folgt aus:

<style name="DarkTheme" parent="AppTheme.NoActionBar"> 
    <item name="android:windowAnimationStyle">@null</item> 
    <item name="android:windowBackground">@color/onyx</item> 
    <item name="colorExperiment">@color/onyx</item> 
</style> 

und zum Beispiel in dem Layout verwenden:

<TextView 
    android:id="@+id/auth_caption" 
    android:includeFontPadding="false" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:gravity="center" 
    android:textSize="34dp" 
    android:text="@string/auth_caption" 
    android:textColor="?colorExperiment" 
/>