gpt4 book ai didi

android - 在 Android 中动画转换和缩放 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:46 24 4
gpt4 key购买 nike

我必须通过更改其比例、位置和滚动来设置从状态 A 到 B 的 View 动画。

下面的代码几乎可以解决问题:

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);

onAnimationEnd 的逻辑使得动画结束后view 闪烁。此外,如果我不调用 clearAnimation(),动画将无法按预期工作(为什么?)。

这样做正确吗?

谢谢!

最佳答案

不知道对不对,我遇到了和你一样的问题。我设法通过添加一个来摆脱闪烁:

动画.重置();

就在:

view.clearAnimation();

注意:在您的代码中,它将是 arg0.reset();

关于android - 在 Android 中动画转换和缩放 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com