サポートライブラリを使用して波紋アニメーションを実現するにはどうすればいいですか? 質問する

サポートライブラリを使用して波紋アニメーションを実現するにはどうすればいいですか? 質問する

ボタンのクリック時に波紋アニメーションを追加しようとしています。以下のようにしましたが、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囲むことです。FrameLayoutsetForeground()setBackground()

正直に言うと、それ以外にこれを行うためのクリーンな方法はありません。

おすすめ記事