hpi*_*que 5 animation android view
我必须通过更改其比例,位置和滚动来为状态A到B的视图设置动画.
以下代码几乎可以解决问题:
AnimationSet animation = new AnimationSet(true);
int fromXDelta = view.getScrollX();
int fromYDelta = view.getScrollY();
view.scrollTo(0, 0);
float scale = (float) widthB / (float) widthA;
// Calculate toXDelta and toYDelta
TranslateAnimation translateAnimation = new TranslateAnimation(-fromXDelta, -toXDelta, -fromYDelta, -toYDelta);
translateAnimation.setDuration(duration);
animation.addAnimation(translateAnimation);
ScaleAnimation scaleAnimation = new ScaleAnimation(1, scale, 1, scale);
scaleAnimation.setDuration(duration);
animation.addAnimation(scaleAnimation);
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
view.clearAnimation();
// Change view to state B by modifying its layout params and scroll
}
@Override public void onAnimationRepeat(Animation arg0) {}
@Override public void onAnimationStart(Animation arg0) {}
});
view.startAnimation(animation);
Run Code Online (Sandbox Code Playgroud)
onAnimationEnd的逻辑使动画结束后视图闪烁.此外,如果我不调用clearAnimation(),动画不能按预期工作(为什么?).
这是正确的方法吗?
谢谢!
我不知道这是否是正确的方法,但我遇到了和你一样的问题。我设法通过添加以下内容来消除闪烁:
动画.重置();
就在之前:
view.clearAnimation();
注意:在您的代码中,它将是 arg0.reset();
| 归档时间: |
|
| 查看次数: |
13566 次 |
| 最近记录: |