この例のように、API レベル 21 の通常のボタンのフィードバックに似た LinearLayout にタッチ フィードバックを追加しようとしていますが、これまでのところ成功していません。
次のような標準的なリップル ドローアブルを定義しました。
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
Google がここで提供する StateListAnimator を使用しました。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="@dimen/touch_raise"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="0dp"
android:valueType="floatType" />
</item>
アニメーターとリップル ドローアブルを定義した後、次のように LinearLayout に追加しました。
<LinearLayout
android:id="@+id/linearLayout"
android:clickable="true"
android:focusable="true"
android:orientation="horizontal"
android:background="@drawable/ripple"
android:stateListAnimator="@anim/touch_elevation">
アイデアは、この LinearLayout をボタンとして使用することです。これは、さまざまな種類のテキストを挿入し、その中に ImageView の配置を処理する方がはるかに簡単であるためです (ボタン ドローアブルとは対照的です)。
この質問のように、ビューの背景に透明度がない限り、リップル効果またはアニメーションを個別に追加できます。
これが上記の質問に関連する問題かどうかはわかりませんが、標準のボタンが波紋と仰角のアニメーション フィードバックの両方を採用していることを考えると、この効果を他のビューでも実現できると思います。
この問題についての洞察をいただければ幸いです。