将颜色更改为自定义按钮

时间:2012-10-13 09:56:21

标签: android

我的drawable文件夹中有一个自定义按钮。 我想在我的XML文件中多次使用它,颜色不同。 有没有办法使用相同的custom_button但颜色不同?

1 个答案:

答案 0 :(得分:0)

首先创建一个选择器xml文件.Selector将允许您更改特定状态(如聚焦或按下)的按钮图像。 我给你选择器的示例代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/ok_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/ok"  />

</selector>

现在使用StateListDrawable,您可以将多个图形图像分配给单个Drawable,并通过字符串ID值替换可见项。

StateListDrawable state_up = new StateListDrawable();
        state_up.addState(new int[] {android.R.attr.state_pressed},getResources().getDrawable(R.drawable.btn_up_cyan));
        state_up.addState(new int[] {android.R.attr.state_focused},getResources().getDrawable(R.drawable.btn_up_cyan));
        b1.setBackgroundDrawable(state_up); 

只需使用不同颜色的图像作为背景,并在您想要更改背景时使用上述代码