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



我有各种各样的按钮,我想获得它们的背景色,在可绘制的颜色中获得背景色很容易,但在可绘制波纹中却不容易,我如何才能从可绘制波纹获得背景色。

试试这个:

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

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

请检查以下示例中android中的波纹效应。。

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

最新更新