2016-07-05 13 views
5

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

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

objectAnimatorを超える進行中であり、そして私は100.0には0.0fの間にオン・ザ・ウェイ値を得ながら、私はmyObject.getX()を試してみました。 ViewPropertyAnimator上の進行中

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

はしかし、私はmyObject.getX()とき、私は100.0正確なった「D。

この違いが何であるかわかりません。

ありがとうございます。

答えて

5

ViewPropertyAnimatorを使用してxフィールドをアニメートするように要求すると、実際にはフィールドがアニメーション表示されず、translateXフィールドがアニメーション表示されます。このため、フィールドの変更がxには表示されません。 ViewPropertyAnimator.javaでAndroidのソースコードから

:一方

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

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

+0

ViewPropertyAnimator.translationX()はどうですか? ViewPropertyAnimator.x()とtranslationX()は実際に同じ意味ですか? – Hwang

+0

translationXは、ビューのmLeft値を補正せずにtranslationXにも影響します。 –

+0

私はこの答えが正しいとは思わない。参考になっていますか? – black