我有各种各样的按钮,我想获得他们的背景颜色,在彩色绘图中获得背景颜色很容易但是在波纹绘制中不容易,我怎样才能设法从波纹绘制中获得背景颜色。
答案 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