我需要制作一个缩放驱动的动画对话框..我想用弹跳插值器尝试弹跳效果
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXScale="0"
android:fromYScale="0"
android:interpolator="@android:anim/bounce_interpolator"
android:toXScale="1"
android:toYScale="1" />
我想修改弹跳效果,使其更慢/更快,弹跳大小。我没找到任何东西, T试图用套装
<set >
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXScale="0"
android:fromYScale="0"
android:toXScale="1"
android:toYScale="1" />
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromXScale="1"
android:fromYScale="1"
android:startOffset="500"
android:toXScale=".8"
android:toYScale=".8" />
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromXScale=".8"
android:fromYScale=".8"
android:startOffset="600"
android:toXScale="1"
android:toYScale="1" />
</set>
整个动画行为奇怪吗? 所以我的问题是如何通过设置或如何修改bounce_interpolator修复此动画?
答案 0 :(得分:2)
使用ipfx.org创建自定义插值器 采取反弹示例并根据您的需要进行编辑 http://ipfx.org/?p=7ffffffe575efffe9e02fffed8f6fffe&l=2f13c5ac138b3d6ad338a5a77a8386807d6e
在app()中使用创建的插补器
import org.ipfx.Interpolator;
...
...
final org.ipfx.Interpolator interpolator = org.ipfx.Interpolator.parseUrl(urlData);
ObjectAnimator animator = ObjectAnimator.ofFloat(...);
animator.setDuration(1000);
animator.setInterpolator(new TimeInterpolator() {
@Override
public float getInterpolation(float input) {
return interpolator.calc(input);
}
});
animator.start();