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

2 に答える 2

0

ビュー アニメーションがこれらのプロパティ (サイズ、境界、または可視性) を変更するとは思わない。アニメーションの最後に、自分でこれを行う必要があります。

これから:http://developer.android.com/guide/topics/graphics/view-animation.html

注: アニメーションの移動方法やサイズ変更方法に関係なく、アニメーションを保持するビューの境界は、それに合わせて自動的に調整されることはありません。それでも、アニメーションはビューの境界を超えて描画され、クリップされません。ただし、アニメーションが親ビューの境界を超えるとクリッピングが発生します。

于 2013-12-31T14:21:19.993 に答える