如何从布局中引用颜色

时间:2016-07-03 17:01:32

标签: android layout material

这是我的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”,但它不起作用。为什么呢?

3 个答案:

答案 0 :(得分:1)

您不必将颜色保存为colors.xml中的资源。您可以直接从主题中引用颜色(或任何其他值),如:

android:textColor="?attr/colorPrimary"

?attr/是访问主题属性值的语法。

答案 1 :(得分: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" />

答案 2 :(得分:-1)

颜色位于color.xml文件中,可以在res&gt;中找到。值&gt; color.xml

要将颜色应用于任何视图,请使用

@color后跟名字 实施例 -

机器人:背景= “@颜色/ colorPrimary”