Android L - 在视图上播放涟漪效应

时间:2014-08-20 14:25:21

标签: android android-5.0-lollipop material-design rippledrawable

我试图在特定时间(而不是被触摸的视图)上的视图上播放涟漪效果(来自Android L)。 具体而言,当用户成功更改某些文本时,我希望某个视图播放绿色涟漪效果以显示成功。有没有办法做到这一点?

我尝试将RippleDrawable放入动画中,将RippleDrawable作为我的成功视图的背景。"但是,我无法弄清楚如何播放涟漪动画。

P.S。我的项目现在只是Android L,所以我不担心向后兼容性。

1 个答案:

答案 0 :(得分:1)

由于您的蒙版只是一个实心矩形,因此您可以将纹波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 */);