gpt4 book ai didi

android - 通过 ValueAnimator 与 ViewPropertyAnimator translationX 对边距进行动画处理

转载 作者:行者123 更新时间:2023-11-29 17:30:47 26 4
gpt4 key购买 nike

我是安卓动画的初学者。我在 RelativeLayout 中几乎没有 View ,我希望更改 View 位置。我有哪些选择,它们有何不同?

我试过以下方法:

view.animate()
.translationX(toX)
.setDuration(duration);

RelativeLayout.MarginLayoutParams params = (RelativeLayout.MarginLayoutParams) view.getLayoutParams();
ValueAnimator animator = ValueAnimator.ofInt(params.rightMargin, 100);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
params5.rightMargin = (Integer) valueAnimator.getAnimatedValue();
}
});

两者都会改变 View 的位置。谁能解释一下这两种方法的区别。我还有哪些其他选择,哪个是首选。

最佳答案

view.animate()
.translationX(toX)
.setDuration(duration);

我认为它是首选,因为它不像第二个那样在每次更新时调用 measure() 和 layout()。

一般来说:
- translationX 旨在调节子项在其父项中的位置
- 通过更改边距参数来执行动画不是一个好主意(它意味着设置一次并且很少更改)

关于android - 通过 ValueAnimator 与 ViewPropertyAnimator translationX 对边距进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33085311/

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