android - 如何获取动态按钮的十六进制颜色

标签 android button background-color

我知道要设置动态按钮的十六进制颜色,您可以这样写:

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/

相关文章:

jquery - 如何循环遍历颜色数组以更改按键背景(按下/向下)

background-color - PhpStorm 背景色行号

c# - WPF ItemsControl 拉伸(stretch) ButtonContent 的 FontSize

java - 设置相同日期行的背景色

android - ConnectivityManager.NetworkCallback 未按预期工作

android - 主机卡仿真 Android 4.4

wpf - 按钮悬停效果和触摸 (WPF)

android - 如何从 EditText 中获取字符串并将其插入到 android 中的 SQLite?

android - Debian Lenny 上的安卓版 Eclipse

Android 为什么偏好会自动更改位置?