Я пытаюсь применить волновой эффект (@drawable/pill
) к макету. Волнистость отрисовывается под дочерними элементами макета, в то время как я хотел бы, чтобы эффект был применен к содержимому.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:background="@drawable/pill"
android:padding="8dp">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/my_icon"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sample text"/>
</FrameLayout>
</FrameLayout>
И pill.xml (где @drawable/pill_bg
- это пользовательская фигура):
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item android:id="@android:id/mask" android:drawable="@drawable/pill_bg"/>
<item android:drawable="@drawable/pill_bg"/>
</ripple>
Следуя другим постам, я безуспешно пытался применить android:background="@null"
и android:drawSelectorOnTop="true"
к ImageView
.
Имеет ли смысл определять рябь в качестве фона макета? Мне интересно, если правильный подход состоит в том, чтобы отделить рябь от фона рисования и применить рябь к фиктивному представлению, которое перекрывает содержимое.