android九补丁文字颜色变化

时间:2014-07-31 13:52:33

标签: android button nine-patch rollover

我有一个定义为Nine Patch的按钮:

<Button     android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/matita"
            android:layout_gravity="center" 
            android:textSize="22sp"
            android:text="@string/menu_help" /> 

在此按钮中有一个文本,例如&#34; MY TEXT&#34;这个文字有一个黑色。我的问题是,当按下按钮时我想简单地改变文本颜色。我怎么能这样做? 在此先感谢。

2 个答案:

答案 0 :(得分:0)

您需要使用ColorStateList

<强>抽拉/ textColor.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@color/testcolor1"/>
    <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
    <item android:state_enabled="false" android:color="@color/testcolor3" />
    <item android:color="@color/testcolor5"/>
</selector>

然后将其应用于Button

<Button     
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/matita"
    android:layout_gravity="center" 
    android:textSize="22sp"
    android:text="@string/menu_help"
    android textColor="@drawable/textColor" /> 

答案 1 :(得分:0)

您需要使用选择器来执行此操作。

在drawable文件夹中,创建一个文件,例如dynamic_color_button,并将其写入其中:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:color="#000000" />
    <item android:state_focused="true" android:state_pressed="true" android:color="#FF0000" />
    <item android:state_focused="false" android:state_pressed="true" android:color="#FF0000" />
    <item android:color="#000000" />
</selector>

然后在按钮中,使用textColor:

访问它
<Button     android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/matita"
            android:layout_gravity="center" 
            android:textSize="22sp"
            android:textColor="@drawable/dynamic_color_button"
            android:text="@string/menu_help" />