0

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

4

1 回答 1

0

首先创建一个选择器 xml 文件。选择器将让您更改特定状态下的按钮图像,例如焦点或按下。我给你选择器的示例代码

<?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); 

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

于 2012-10-13T10:23:27.723 回答