2015-09-29 8 views
19

Androidでプロパティのアニメーションを使用して表示の高さを上げるにはどうすればよいですか?Androidのプロパティのアニメーション:どのように表示の高さを増やすには?

ObjectAnimator a = ObjectAnimator.ofFloat(viewToIncreaseHeight, "translationY", -100); 
a.setInterpolator(new AccelerateDecelerateInterpolator()); 
a.setDuration(1000); 
a.start(); 

実際には、翻訳Yは高さを増加させずにビューを移動します。どのようにしてビューの高さを上げることができますか?

答えて

53
ValueAnimator anim = ValueAnimator.ofInt(viewToIncreaseHeight.getMeasuredHeight(), -100); 
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
    @Override 
    public void onAnimationUpdate(ValueAnimator valueAnimator) { 
     int val = (Integer) valueAnimator.getAnimatedValue(); 
     ViewGroup.LayoutParams layoutParams = viewToIncreaseHeight.getLayoutParams(); 
     layoutParams.height = val; 
     viewToIncreaseHeight.setLayoutParams(layoutParams); 
    } 
}); 
anim.setDuration(DURATION); 
anim.start(); 
+0

スケールは両方向に高さを増やします。私は高さを一方向に伸ばしたいと思う。 –

+0

代わりに 'ValueAnimator'を使用してください。 –

+0

はい、私はあなたの答え:-pの前に何をしたのですか、それを受け入れます。ありがとう –

3

あなたはあなたのコードのいくつかの行節約することができViewPropertyAnimator、使用することができます。

yourView.animate().scaleY(-100f).setInterpolator(new AccelerateDecelerateInterpolator()).setDuration(1000); 

ドキュメントとViewPropertyAnimatorのためのすべての利用可能な方法を確認してください、あなたが必要とするすべてである必要があります。

+0

AccelerateDecelerateInterpolatorインスタンスの作成で閉じる括弧を忘れないでください。 – RTF

+0

@ RTFありがとうございました。 –

関連する問題