2017-08-20 9 views
1

バウンスアニメーションを追加してどのアニメーションが下に来るかを確認する方法はありますが、これは一度だけ実行してください。深さのバウンスアニメーション

私はYと補間をバウンス設定した場合、その与えられた期間 ために跳ねるが、私はそれのために一度だけしたいが、それは現在のビュー

ObjectAnimator animator = ObjectAnimator.ofFloat(targetView, "translationY", 0, 50, 0); 
    animator.setInterpolator(new BounceInterpolator()); 
    animator.setDuration(200); 
    animator.start(); 

答えて

1

使用OvershootInterpolatorまで5DPを下に言う行くとすべきです。

ドク:

変更は前方投げつける、その後、戻ってくる 最後の値をオーバーシュート補間。

あなたはtensionパラメータでコンストラクタを使用して、オーバーシュートの張力を調整することができます。

OvershootInterpolator(float tension) 

テンション:オーバーシュート量。張力が0.0fに等しいとき、 オーバーシュートはなく、補間器は単純減速度 補間器になります。

デフォルト値tensionは、2.0fです。 ViewPropertyAnimatorを使用して

例:

targetView.animate() 
    .translationY(50) 
    .setInterpolator(new OvershootInterpolator()) 
    .setDuration(200); 

ObjectAnimatorを使用して:ObjectAnimatorと

ObjectAnimator animator = ObjectAnimator.ofFloat(targetView, "translationY", 0, 50); // pass only start and end values. 
    animator.setInterpolator(new OvershootInterpolator()); 
    animator.setDuration(200); 
    animator.start(); 
+0

? – andro

+0

はい。 'ObjectAnimator'または' ViewPropertyAnimator'です。どちらもうまくいくはずです。 – Bob

+0

関連するノートでは、 '' translationY "の代わりに' 'View.TRANSLATION_Y''を' ObjectAnimator'に渡すことができます。あるいは、 'ViewPropertyAnimator'を使用してください。これはObjectAnimatorよりも優れています(https://android-developers.googleblog.com/2011/05/introducing-viewpropertyanimator.html) – Bob