我知道要设置动态按钮的十六进制颜色,您可以这样写:
button.setBackgroundColor(Color.parseColor("#FFFFFF"));
但是我怎样才能得到按钮的颜色呢?
我需要这个,因为按钮会根据点击改变颜色,所以我想根据当时按钮的颜色编写 if 语句。
不幸的是,在阅读了其他各种答案后,它们对我没有用。
我试过:
Drawable buttonBackground = button.getBackground();
ColorDrawable buttonColour = (ColorDrawable) button.getBackground();
但这不允许我使用十六进制代码进行比较,例如
if (buttonColour == "#FFFFFF"){
//do stuff
}
我也尝试过在 values/colors 中设置颜色
<color name="notPresent">#FFFFFF</color>
然后在我的代码中:
String buttonColour= button.getResources().getString(R.color.notPresent);
然后用if语句进行比较,同样失败。
最佳答案
按钮是一个 View 。您可以获得像这样的纯色 View
int color = Color.TRANSPARENT;
Drawable bg = view.getBackground();
if (bg instanceof ColorDrawable)
color = ((ColorDrawable) background).getColor();
然后把它转换成彩色HEX之类的
String hexColor = String.format("#%06X", (0xFFFFFF & intColor));
关于android - 如何获取动态按钮的十六进制颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48227455/