Как получить цвет кнопки с рисованной рябью

У меня есть несколько кнопок, и я хотел бы получить их цвет фона, легко получить цвет фона в цвете, который можно нарисовать, но это не так просто в рисовании пульсаций, как я могу получить цвет фона из рисования пульсаций.

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

Другие вопросы по тегам