我制作了一个按钮,可以通过这种方式更改不同状态下的背景可绘制对象:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_location_pressed" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/btn_location_pressed"/> <!-- focused --> <item android:drawable="@drawable/btn_location"/> <!-- default --> </selector>
这里的问题是我也试图改变 textColor 就像我对 drawable 所做的那样,但我做不到。我已经尝试过 android:textColor 和 android:color 但是第一个不起作用,而秒数改变了我的背景。
下一个代码是我布局的一部分。关于文本颜色,它仅适用于正常状态的文本颜色,因此在按下时不会将其更改为白色
<Button android:id="@+id/location_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="5dp" android:background="@drawable/location" android:textSize="15sp" android:textColor="@color/location_color" android:textColorHighlight="#FFFFFF" />
有人有线索吗?
为您的按钮创建一个有状态的颜色,就像您为背景所做的那样,例如:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Focused and not pressed --> <item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" /> <!-- Focused and pressed --> <item android:state_focused="true" android:state_pressed="true" android:color="#000000" /> <!-- Unfocused and pressed --> <item android:state_focused="false" android:state_pressed="true" android:color="#000000" /> <!-- Default color --> <item android:color="#ffffff" /> </selector>
将 xml 文件放在 res/drawable 文件夹的文件中,即 res/drawable/button_text_color.xml。然后只需将drawable设置为文本颜色:
android:textColor="@drawable/button_text_color"