按下按钮,文本颜色

时间:2014-10-29 09:09:19

标签: android android-text-color

我需要使用选择器

更改按钮颜色(正常/按下)

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显示默认颜色

3 个答案:

答案 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)

为什么要改变颜色,让我们做一个全新的有吸引力的事情....我相信你会喜欢它

  1. 在名为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>
    
  2. 其中button_pressedbutton是您要在按下的按钮上显示的图像和按钮的正常状态

    1. 将按钮的背景设置为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" />
      
    2. 并享受!