ボタンのクリック時に波紋アニメーションを追加しようとしています。以下のようにしましたが、minSdKVersion を 21 にする必要があります。
リップル.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
ボタン
<com.devspark.robototextview.widget.RobotoButton
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="@string/login_button" />
デザインライブラリとの下位互換性を確保したいと考えています。
これはどうすればできるのでしょうか?
ベストアンサー1
基本的なリップル設定
ビュー内に含まれる波紋。
android:background="?selectableItemBackground"
ビューの境界を超えて広がる波紋:
android:background="?selectableItemBackgroundBorderless"
見てみましょうここ
?(attr)
Java コード内の XML 参照を解決します。
サポートライブラリ
?attr:
(または?
省略形)の代わりに?android:attr
参照を使用すると、サポートライブラリなので、API 7 でも利用できます。
画像/背景による波紋
- 画像または背景に波紋を重ねる最も簡単な方法は、またはで設定した波紋を で
View
囲むことです。FrameLayout
setForeground()
setBackground()
正直に言うと、それ以外にこれを行うためのクリーンな方法はありません。