2

特定の時間に(タッチされているビューではなく)ビューで(Android Lから)波及効果を再生しようとしています。具体的には、ユーザーがテキストを正常に変更したときに、特定のビューで緑色の波及効果を再生して成功を示したいと考えています。これを行う方法はありますか?

RippleDrawable をアニメーションに配置して、RippleDrawable を「成功ビュー」の背景として配置しようとしました。しかし、説明したように波紋アニメーションを再生する方法がわかりません。

PS 私のプロジェクトは現在 Android L のみなので、下位互換性については心配していません。

4

1 に答える 1

2

マスクは単なる四角形であるため、リップル XML を次のように単純化できます。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <item android:id="@android:id/mask" android:drawable="@android:color/white" />
    <item android:drawable="@drawable/file_item_selector"/>
</ripple>

ビューを強制的に押した状態にしたり、押した状態から外したりすることで、波及効果を手動でトリガーできます。

myView.setPressed(true);

// For a quick ripple, you can immediately set false.
myView.setPressed(false);

// Or for a long ripple, you can post to a handler.
myView.postDelayed(new Runnable() {
    public void run() {
        myView.setPressed(false);
    }
}, 500 /* delay in milliseconds */);
于 2014-08-20T22:26:28.087 に答える