2016-07-03 62 views
1

引用一個顏色 - 這是我的styles.xml文件如何從佈局

<!-- 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" /> 

,我想從我的佈局訪問colorPrimary。 例如,我嘗試將顏色應用於某些TextField。我將「textColor」屬性設置爲「@ style/AppTheme.colorPrimary」,但它不起作用。爲什麼?

回答

0

你必須保存顏色的colors.xml文件

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

而且,在像這樣的styles.xml文件的更改,

<!-- 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" /> 

所以,現在你可以訪問佈局的顏色元素,

<Button 
    android:background="@color/colorPrimary" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
-1

顏色駐留在color.xml文件中,它可以在RES>值> color.xml

將顏色應用到任何視圖中只使用

@color其次是名稱 例 -

的android:背景= 「@顏色/ colorPrimary」

0

你不必將顏色保存爲colors.xml中的資源。可以直接從主題引用的顏色(或任何其他值)這樣的:

android:textColor="?attr/colorPrimary" 

?attr/是用於訪問主題的屬性值的語法。