android - 如何获取带有波纹可绘制的按钮的颜色

标签 android drawable

我有各种按钮,我想获取它们的背景颜色,在颜色可绘制中获取背景颜色很容易,但在波纹可绘制中并不容易,我如何设法从波纹可绘制中获取背景颜色。

最佳答案

试试这个:

 RippleDrawable rippleDrawable = (RippleDrawable) button.getBackground();
 Drawable.ConstantState state = rippleDrawable.getConstantState();
 try {
     Field colorField = state.getClass().getDeclaredField("mColor");
     colorField.setAccessible(true);
     ColorStateList colorStateList = (ColorStateList) colorField.get(state);
     int rippleColor = colorStateList.getDefaultColor();
  } catch (NoSuchFieldException e) {
      e.printStackTrace();
  } catch (IllegalAccessException e) {
      e.printStackTrace();
  }

关于android - 如何获取带有波纹可绘制的按钮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352945/

相关文章:

Android:可绘制完美的圆角

较低API级别的Android Drawable Shape Ring

android - ListView 项目和状态选择器背景可绘制的奇怪行为

android - 可绘制资源中带有形状的文本

android - 在 Eclipse 中将自定义参数传递给 aapt

android - GridLayout 在小显示器上折叠

android - 透明 ActionBar 不起作用

android - 如何以编程方式在 Android 中启用日志记录

android - 从 DefaultHandler 中获取 Drawable 资源

Android - 如何防止 ColorFilter 与 Porterduff.Mode.Screen 混合 alpha?