如何获得带有波纹可绘制按钮的颜色

时间:2016-04-01 09:41:36

标签: android drawable

我有各种各样的按钮,我想获得他们的背景颜色,在彩色绘图中获得背景颜色很容易但是在波纹绘制中不容易,我怎样才能设法从波纹绘制中获得背景颜色。

3 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:0)

我找到的解决方案是从新创建的应用程序清单中删除条目 - 特别是查看样式、主题和颜色 - 将旧的工作应用程序与新的应用程序进行比较以确定嫌疑人。 然后,RippleDrawable 将自身替换为原来的 ColorDrawable,并且 .getColor() 再次起作用。

答案 2 :(得分:-1)

请在android中查看以下关于涟漪效果的示例..

http://www.viralandroid.com/2015/09/how-to-add-ripple-effect-to-android-button.html