我需要使用选择器
更改按钮颜色(正常/按下)RES /颜色/ test_color_button.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/button_focused"/>
<item android:state_pressed="false" android:color="@color/button_font"/>
<item android:color="@color/button_font"/>
</selector>
代码中的class MyButton(它从类Button扩展)我使用下面的代码来设置文本颜色
//at Constructor
this.setTextColor(getResources().getColor(R.color.text_color_button));
但我的问题是,Button alwas显示默认颜色
答案 0 :(得分:2)
您需要创建一个ColorStateList
对象
XmlResourceParser parser = getResources().getXml(R.color.test_color_button);
ColorStateList colorStateList = ColorStateList.createFromXml(getResources(), parser);
this.setTextColor(colorStateList);
答案 1 :(得分:1)
尝试将选择器设置为背景,如下所示:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_bg" />
答案 2 :(得分:0)
为什么要改变颜色,让我们做一个全新的有吸引力的事情....我相信你会喜欢它
在名为button_bg.xml
的可绘制文件夹中创建一个xml文件,如下所示
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/button" />
</selector>
其中button_pressed
和button
是您要在按下的按钮上显示的图像和按钮的正常状态
将按钮的背景设置为button_bg.xml
,如下所示
<Button
android:id="@+id/button1"
android:layout_width="250dp"
android:layout_height="70dp"
android:layout_marginLeft="360dp"
android:layout_marginTop="520dp"
android:background="@drawable/button_bg" <!--like this-->
android:text="Login"
android:textColor="#ffffff"
android:textSize="30dp" />
并享受!