6

プロパティ値を変更する ObjectAnimator と ViewPropertyAnimator の違いは何ですか?

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(myObject, "X", 0.0f, 100.0f);

myObject.getX()上記の実行中に試してみobjectAnimatorたところ、0.0f から 100.0 の間の途中の値が得られました。

myObject.setX(0.0f);
myObject.animate().x(100.0f);

myObject.getX()ただし、上記の実行中に正確な 100.0 を取得しViewPropertyAnimatorました。

何がこの違いを生んでいるのか理解できません。

前もって感謝します。

4

1 に答える 1

5

xを使用してフィールドのアニメーション化を要求するとViewPropertyAnimator、実際にはフィールドがアニメーション化されません。フィールドxがアニメーション化されtranslateXます。xこれが、フィールドの変化が見えない理由です。

ViewPropertyAnimator.javaの Android ソース コードから:

case X:
    renderNode.setTranslationX(value - mView.mLeft);
    break;

ObjectAnimator一方、サポートされているアクションのプリセット リストではなく、リフレクションを使用してプロパティをアニメーション化します。Xそのため、" " フィールドをアニメーション化するように指示すると、setX直接 " " が呼び出されます。

于 2016-07-05T14:14:44.277 に答える