Как получить цвет кнопки с рисованной рябью
У меня есть несколько кнопок, и я хотел бы получить их цвет фона, легко получить цвет фона в цвете, который можно нарисовать, но это не так просто в рисовании пульсаций, как я могу получить цвет фона из рисования пульсаций.
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();
}
Решение, которое я нашел, состояло в том, чтобы удалить записи из манифеста недавно созданного приложения — особенно посмотреть на стили, темы и цвета — сравнить старые рабочие приложения с новым, чтобы определить подозреваемых. Затем RippleDrawable заменил себя ColorDrawable, которым он был, и .getColor() снова работает.
Пожалуйста, проверьте следующий пример для волнового эффекта в Android.
http://www.viralandroid.com/2015/09/how-to-add-ripple-effect-to-android-button.html