2016-07-03 24 views
1

Dies ist meine styles.xml DateiWie eine Farbe aus Layout verweisen

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">#6d3655</item> 
    <item name="colorPrimaryDark">#442142</item> 
    <item name="colorAccent">#de8573</item> 
</style> 

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

Und ich will colorPrimary von meinem Layout zuzugreifen. Zum Beispiel versuche ich die Farbe auf ein TextField anzuwenden. Ich setze die "textColor" -Eigenschaft auf "@ style/AppTheme.colorPrimary", aber es funktioniert nicht. Warum?

Antwort

0

Sie haben die Farbe in der colors.xml Datei wie diese Weise

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="colorPrimary">#6d3655</color> 
    <color name="colorPrimaryDark">#442142</color> 
    <color name="colorAccent">#de8573</color> 
</resources> 

Auch in Ihrer styles.xml Datei ändern

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

So sparen, jetzt können Sie die Farbe aus dem Layout der Zugriff Element,

-1

Farbe befindet sich in color.xml-Datei, die bei gefunden werden kann res> Werte> color.xml

Um nur

@color von Beispiel-

android Name gefolgt verwenden Farbe zu jeder Ansicht anwenden: Hintergrund = "@ color/colorPrimary"

0

Sie muss die Farbe nicht als Ressource in colors.xml speichern. Sie können eine Farbe (oder einen anderen Wert) verweisen direkt vom Thema wie folgt aus:

android:textColor="?attr/colorPrimary" 

?attr/ die Syntax ist Thema Attributwerte für den Zugriff.