获取按钮的颜色

时间:2014-06-14 16:45:27

标签: android

我想使用一个代码来指示按钮的颜色(id = button1),如果颜色为蓝色则执行某些操作, 我的意思是=

如果button1的颜色为蓝色类型1,如果是绿色,黄色或其他颜色,请键入游戏结束。

我该怎么做?

我试过这种方式:

if(v.getId() == R.id.button1){
          ColorDrawable buttonColor = (ColorDrawable) button1.getBackground();
          int colorId = buttonColor.getColor();
      }

出现错误:

Multiple markers at this line
- Type mismatch: cannot convert from ColorDrawable to int
- The method getColor() is undefined for the type 

如果你将鼠标悬停在getColor()上,则会出现另一个错误:

The method getColor() is undefined for the type ColorDrawable

我该怎么办? THX。

2 个答案:

答案 0 :(得分:1)

这是错误的做法。您永远不应该使用UI属性来确定程序状态,这样做会导致意大利面条代码。相反,您应该在代码中使用一个名称,这个名称意味着可以轻松理解跟踪按钮状态的内容。每当您更改按钮的颜色时,您都可以设置此变量。然后,当您需要根据颜色做出某些决定时,可以使用此变量。

答案 1 :(得分:0)

您也可以尝试将颜色值设置为

标签
android:tag="#ff0000"

并从代码

访问它
String colorCode = (String)btn.getTag();

Button button = (Button) findViewById(R.id.my_button);
Drawable buttonBackground = button.getBackground();