如何更改textColor if按钮按Android

时间:2015-07-21 08:01:56

标签: android xml colors textcolor

我有一个特殊需要texcolorlist把drawable与背景按钮放在一起。 我的textColor:

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="@android:color/black" />
    <item android:state_checked="true" android:color="@android:color/black" />
    <item android:color="#8e000000"/>
</selector>

我的按钮状态:

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <gradient
                android:angle="90"
                android:endColor="#005b7f"
                android:startColor="#051725"/>
            <corners android:radius="5dp"/>
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <gradient 
                android:angle="90" 
                android:endColor="#e6e6e6" 
                android:startColor="#b3b3b3"/>
            <corners 
                android:bottomLeftRadius="5dp"
                android:bottomRightRadius="5dp"
                android:topLeftRadius="5dp"
                android:topRightRadius="5dp"/>
        </shape>
    </item>
</selector>

我知道通过这种方式我可以按下按钮颜色: android:textColor="@drawable/button_text_color"

我想知道按钮文字颜色是否可以直接放入我的按钮状态。 这是,但不起作用

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
            android:shape="rectangle"
            android:textColor="#000000">
            <gradient
                android:angle="90"
                android:endColor="#e6e6e6"
                android:startColor="#b3b3b3"/>
            <corners
                android:bottomLeftRadius="5dp"
                android:bottomRightRadius="5dp"
                android:topLeftRadius="5dp"
                android:topRightRadius="5dp"/>
        </shape>
    </item>
</selector>

3 个答案:

答案 0 :(得分:0)

您还需要将选择器定义为文本颜色:

android:textColor="@drawable/yourselector"

这里的例子:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:state_pressed="false" android:color="@color/blue" />
   <item android:state_focused="true" android:state_pressed="true" android:color="@color/red" />
   <item android:state_focused="false" android:state_pressed="true" android:color="@color/green" />

</selector>

编辑:我没有看到我对这种可能性的评价。我不认为你想要什么是可能的,因为你在选择器中定义的是指你指定它的android属性。由于属性是背景,因此文本颜色没有任何意义。

答案 1 :(得分:0)

  

我想知道按钮文字颜色是否可以直接放入我的按钮状态。

不,它不能。可绘制XML资源无法在应用它们的元素上设置属性。您可能感兴趣的是使用Style

<强>值/ styles.xml

<style name="MyButtonStyle">
    <item name="android:textColor">@drawable/button_text_color</item>
    <item name="android:background">@drawable/button_background</item>
</style>

<强> MyLayout.xml

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/MyButtonStyle"/>

答案 2 :(得分:0)

之前回答过这个问题:

Android customized button; changing text color

希望它会有所帮助。