Запрос значения colorControlHighlight во время выполнения возвращает отрицательное значение - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь получить цвет пульсации во время выполнения:

<ImageView
        android:id="@+id/close_button"
        ...
        android:padding="12dp"
        android:alpha="0"
        android:theme="@style/ripple_theme"
        android:background="?attr/selectableItemBackground"
        android:contentDescription="@string/og_close_icon_a11y"
        android:visibility="gone"
        app:srcCompat="@drawable/quantum_gm_ic_close_vd_theme_24"
        tools:ignore="InconsistentLayout"/>

values.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <style name="ripple_theme">
    <item name="colorControlHighlight">@color/google_yellow100</item>
  </style>

</resources>

Плюс мне нужно установить альфа равным 10%, или это значение, установленное пульсацией автоматически?

Я пытался получить значение цвета android.R.attr.colorControlHighlight во время выполнения, но всегда получаю отрицательное значение.

Как я могу это исправить?

int result = 0;
View closeBtn = findViewById(R.id.close_button);
TypedValue outValue = new TypedValue();

Resources.Theme theme = closeBtn.getContext().getTheme();
boolean wasResolved =
    theme.resolveAttribute(android.R.attr.colorControlHighlight, outValue, true);
if (wasResolved) {
  result =
      outValue.resourceId == 0
          ? outValue.data
          : ContextCompat.getColor(getContext(), outValue.resourceId);
}
result = result + 0;
...