如何为按钮的按下状态设置不同的颜色?

rea*_*ser 28 android android-button

Buttons我的Android应用程序上有一些.他们有一个图标和文字.我可以设置Buttonjava代码中的背景颜色.如果单击该按钮,我想显示不同的颜色.那么,如何为压缩状态设置不同的颜色Button

<Button 
  android:id="@+id/save" 
  android:layout_width="130dip"
  android:layout_height="wrap_content" 
  android:scaleType="center"
  android:drawableTop="@drawable/save"
  android:text="Save"
  android:textColor="#FFFFFF"
  android:textSize="14dip" 
>
Run Code Online (Sandbox Code Playgroud)

onCreate方法:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.homescreen);
 save = (Button)findViewById(R.id.save);
    save.setBackgroundColor(Color.rgb(27,161,226)); }
Run Code Online (Sandbox Code Playgroud)

Raj*_*ddy 58

使用可绘制文件夹中的mybutton.xml,使用像这样的按钮图像创建xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true" android:drawable="@color/blue" />
   <item android:state_focused="true" android:drawable="@color/gold" />
   <item android:drawable="@color/grey" />
</selector>
Run Code Online (Sandbox Code Playgroud)

并在按钮xml代码中使用它

android:background="@drawable/mybutton"
Run Code Online (Sandbox Code Playgroud)

在资源中添加这些颜色代码 - > values - > colors.xml就像这样

<?xml version="1.0" encoding="utf-8"?>
<resources>   
  <color name="blue">#0066cc</color>
  <color name="gold">#e6b121</color>
  <color name="grey">#cccccc</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

参考:触摸时更改按钮背景


Man*_*esh 5

下面是用于按钮的颜色状态列表的示例代码

<?xml version="1.0" encoding="UTF-8"?>

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item
            android:color="#c0c0c0"
            android:state_selected="true"/>
        <item
            android:color="#ffffff"
            android:state_pressed="true"/>
        <item
            android:color="#9A9A9A"
            android:state_focused="false"
            android:state_pressed="false"
            android:state_selected="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

另请查看以下链接以获取颜色状态列表

http://developer.android.com/guide/topics/resources/color-list-resource.html

  • <item>标记需要一个'drawable'属性或定义drawable的子标记 (2认同)