一个切换自己背景颜色的按钮

时间:2013-05-30 09:46:58

标签: android button background-color

我是android的新手,所以这个问题可能看起来非常棒。我的目标是点击一个按钮,如果它当前为绿色,则将其自己的背景颜色更改为红色,如果当前为红色则更改为蓝色,如果为蓝色则更改为绿色。

我有一个按钮:

    <Button
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:onClick="toggleColor"
        android:text="@string/foo" />

在MainActivity中我有:

public void onClickCard(View view) {
    if (view.getBGColor == green) {
        view.setBGColor(red);
    }
    // ...so on
}

我不知道如何获取按钮的当前颜色。请帮忙,谢谢!

3 个答案:

答案 0 :(得分:1)

在您的活动中,声明这些字段

    private enum ColorCodes {
        RED,
        GREEN,
        BLUE,
        YELLOW
    }

//我假设你的xml中默认有红色

 private ColorCodes colorCodes = ColorCodes.RED;

然后做这样的事情:

public void onClickCard(View view) {
        switch (colorCodes) {
        case RED:
            view.setBackgroundResource(blue);
            colorCodes = ColorCodes.BLUE;
            break;
        case GREEN:
            view.setBackgroundResource(yellow);
            colorCodes = ColorCodes.YELLOW;
            break;
        case BLUE:
            view.setBackgroundResource(red);
            colorCodes = ColorCodes.RED;
            break;
        case YELLOW:
            view.setBackgroundResource(green);
            colorCodes = ColorCodes.GREEN;
                break;
        }
    }

答案 1 :(得分:1)

试试这个..

  public void onClick(View view) {

            ColorDrawable buttonColor = (ColorDrawable) view.getBackground();                    
            int colorId = buttonColor.getColor();                   

            if (colorId==Color.GREEN) {
                view.setBackgroundColor(Color.RED);
            }

        }

答案 2 :(得分:0)

更好的方法是,使用LevelListDrawables可以使用getBackground()来检查背景的级别并根据它进行更改。