2012-02-17 80 views

回答

8

见该位文档称为状态列表节... Drawable Resources

您可以定义两种不同Button XML文件一个是透明的“默认”状态,另一个按钮为红色为你的“按下”状态。然后定义一个selector,它将可绘制资源切换到不同的状态。

编辑:按照devunwired的评论的颜色状态列表资源可能更适用于只是改变颜色,而不是绘制本身。

+6

+1因为这个答案大部分是正确的。不过,我想补充一点,您可以使用颜色状态列表以类似的方式更改'android:textColor'属性:http://developer.android.com/guide/topics/resources/color-list -resource.html – Devunwired 2012-02-17 21:27:00

+0

Doh!是的,一点没错。我应该也包括一个链接 - 我只是碰巧有另一个链接书签,所以它在手边。 – Squonk 2012-02-17 21:35:09

1

您必须在您的代码中执行此操作。试试这个:

mBtn = ((Button) findViewById(R.id.button1)); 
    mBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      mBtn.setTextColor(Color.RED); 
     } 
    }); 

声明:本

private Button mBtn; 
30

是的,你可以做这样的:

布局/ main_layout.xml:

..... 
    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="bonjour !" 
     android:textColor="@color/button_text_color" 
    /> 
..... 

颜色/ button_text_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#c0c0c0" android:state_pressed="true"/> 
    <item android:color="#ffffff"/> 
    </selector> 
+1

你究竟在哪里改变文字颜色?你正在玩背景,但不是文字颜色 – 2014-09-22 10:06:21

+1

不是'@ drawable/button_text_color',而是'@ color/button_text_color'。 – CoolMind 2017-10-09 16:51:29