我想做一层反弹动画.
我已经完成了从正确到中心的那一层,现在我想稍微向后移动然后再回到中心.这会产生反弹效果.
我想我可以用这样的翻译来做到这一点:
- <translate
- android:duration="900"
- android:fromXDelta="100%p"
- android:toXDelta="0%p" />
- <translate
- android:duration="900"
- android:fromXDelta="0%p"
- android:toXDelta="100%p" />
- <translate
- android:duration="900"
- android:fromXDelta="70%p"
- android:toXDelta="0%p" />
那么这段代码不起作用,我唯一可以实现的是Layer从左到中,然后动画停止.
我不能使用这段代码:因为它没有实现我想要的
- setInterpolator(AnimationUtils.loadInterpolator(this,android.R.anim.bounce_interpolator));
任何帮助,将不胜感激.
解决方法
您可以使用
BounceInterpolator来实现此效果.
docs包含了如何在XML中使用它的非常好的描述.只需要像这样的动画xml:
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/bounce_interpolator">
- <!-- Use your working translate animation here-->
- <translate
- android:duration="900"
- android:fromXDelta="100%p"
- android:toXDelta="0%p" />
- </set>