как добавить пользовательский цветной круговой ряби с круговой маской, когда не рябь - PullRequest
0 голосов
/ 03 июня 2019

Я хочу добавить рябь в свой ImageView:

API + 21

  1. пользовательский цвет (один цвет для светлой темы, другой цвет для темной темы)
  2. круговая маска

API -21 (необязательно):

  1. пользовательского цвета (один цвет для светлой темы, другой цвет для темной темы)

Я пробовал:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/google_blue200">
  <item>
    <shape android:shape="oval">
      <solid android:color="@color/google_red200"/>
    </shape>
  </item>
</ripple>

Однако я хочу, чтобы цвет пульсации выбирался темой, и я хочу, чтобы круговая маска была прозрачной (когда пульсаций нет).

enter image description here

Я пробовал:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?attr/MyRippleColor">
  <item android:id="@android:id/mask">
    <shape android:shape="oval">
      <solid android:color="?attr/backgroundColor"/>
    </shape>
  </item>
</ripple>

Однако я не вижу пульсации.

1 Ответ

0 голосов
/ 03 июня 2019

Этот xml помог мне понять, что такое маска, фоновые элементы:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/myColor">
  <!-- Use this to define the shape of the ripple effect (rectangle, oval, ring or line). The color specified here isn't used anyway -->
  <item android:id="@android:id/mask">
    <shape android:shape="ring">
      <corners android:radius="3dp"/>
      <!-- This color is needed to be set - doesn't affect anything -->
      <solid android:color="@android:color/white"/>
    </shape>
  </item>
</ripple>
...