繁体   English   中英

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

[英]A button that toggles its own 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
}

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

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

    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;
        }
    }

尝试这个..

  public void onClick(View view) {

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

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

        }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM