私の見解では、ユーザーがレイアウト内の ImageView に触れるたびに波及効果が表示されるようにしたいと考えています。ImageView を RelativeLayout 内にラップしようとしましたが、うまくいきませんでした。レイアウトは次のとおりです。
<RelativeLayout
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="com.sample.me.TapActivity" >
<RelativeLayout
android:id="@+id/tap_view_frame"
android:layout_width="@dimen/activity_tap_image_width"
android:layout_height="@dimen/activity_tap_image_height"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:clickable="true"
android:background="@drawable/ripple_view" >
<ImageView
android:id="@+id/tap_view"
android:src="@drawable/ram"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:clickable="true" />
</RelativeLayout>
<TextView
android:id="@+id/tap_name_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/white"
android:layout_marginLeft="@dimen/textview_horizontal_margin"
android:layout_alignParentLeft="true"
android:layout_above="@+id/tap_number_textView"/>
<TextView
android:id="@+id/tap_number_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/white"
android:layout_marginBottom="@dimen/textview_vertical_margin"
android:layout_alignLeft="@+id/tap_name_textView"
android:layout_alignBottom="@+id/tap_view_frame" />
<android.support.v7.widget.CardView
android:id="@+id/tap_card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/cardview_horizontal_margin"
android:layout_marginRight="@dimen/cardview_horizontal_margin"
android:layout_marginTop="@dimen/cardview_vertical_margin"
android:layout_below="@+id/tap_view_frame">
<android.support.v7.widget.RecyclerView
android:id="@+id/tap_options_recyclerview"
android:layout_width="match_parent"
android:layout_height="@dimen/cardview_tap_height" />
</android.support.v7.widget.CardView>
そして、これが「ripple_view」ドローアブルです。
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffa0a0a0">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#ffa0a0a0"/>
</shape>
</item>
</ripple>
また、android:background="?android:attr/selectableItemBackground" タグを追加しようとしましたが、それは役に立たなかったようです。リップルが表示されない理由を誰か説明できますか? カスタム ボタンと RecyclerView 行で同じ方法を使用して効果を有効にしましたが、RelativeLayout では機能しません。理想的には、このような単純なものにサードパーティのライブラリを使用することは避けたいと思います.