我有一个定义为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;这个文字有一个黑色。我的问题是,当按下按钮时我想简单地改变文本颜色。我怎么能这样做? 在此先感谢。
答案 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" />