缩放ObjectAnimator后视图宽度未改变

4

当我动画化scaleX属性后,宽度不应该会发生变化吗?我注意到在减小视图宽度时,可点击区域也会缩小,所以我猜宽度必须被适应。但是当我调用view.getWidth()时,仍然得到初始值。

        Log.d(TAG, "" + getWidth()); //Initial value
        setPivotX(getWidth() / 2);
        ObjectAnimator animator = ObjectAnimator.ofFloat(this, View.SCALE_X, 1.0f, 0.8f);
        animator.setInterpolator(new DecelerateInterpolator(1));
        animator.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                Log.d(TAG, "" + getWidth()); //Initial value :(
            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });
        animator.start();

我知道这是很久以前的事了,但你解决了这个问题吗?如果是的话,能给一些建议吗? :) - keybee
2个回答

0

0

我认为视图动画不会改变这些属性(大小、边界或可见性)。你必须在动画结束时自己完成这个过程。

来自:http://developer.android.com/guide/topics/graphics/view-animation.html

注意:无论您的动画如何移动或调整大小,持有动画的View的边界都不会自动调整以适应它。即使如此,动画仍将被绘制在其View的边界之外,并且不会被裁剪。但是,如果动画超出父View的边界,则会发生裁剪。


6
好的,这就是针对视图动画的情况。我的问题是关于属性动画,它们自API lvl 11或在我的示例中甚至是14可用。优点应该是您不必在动画完成后处理fillAfter之类的内容。 http://developer.android.com/guide/topics/graphics/prop-animation.html - Kuno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接