2016-04-02 10 views
0

アニメーションを変更したいTextView 0からその実際の高さ。私はこのコードを使用しています:アンドロイド - ビューの高さが変化するスムーズなアニメーション

ValueAnimator anim = ValueAnimator.ofInt(0, height) 
         .setDuration(1000); 
       anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
        public void onAnimationUpdate(ValueAnimator animation) { 
         textView.getLayoutParams().height = (int)animation.getAnimatedValue(); 
         textView.requestLayout(); 
        } 
       }); 
       anim.start(); 

をしかし、アニメーションはその滑らかではない(ひどいではないが、私はそれを滑らかにすることができると思います)。

このような滑らかなアニメーションを作成するにはどうすればよいですか?

+2

downvoteよりもdownvotingの理由についてコメントに書いた方が良いでしょう。 –

答えて

0

滑らかではない理由は、各更新呼び出しでレイアウトの高さを設定し、レイアウトを要求しているために、1秒に数回実行するとCPU負荷がかかるためです。私が示唆できるよりスムーズな方法は、テキストビューの可視性をなくしたままにして、それをコードで表示するように設定することです。

アニメーションを使用してアニメーションを設定できます。また、アニメーションをカスタマイズしたいいけないとだけ、それはあなたがあなたに見えるよう可視性を設定するときは、その後、あなたのTextViewの親のレイアウト

android:animateLayoutChanges= "true" 

にXML属性の下に指定してデフォルトのアニメーションを使用することができる位置にアニメーション化したい場合以下のようなコード

textview.setVisibility(View.VISIBLE) 

あなたのテキストビューは自動的にその場所にアニメーション表示されます。

+0

アニメーションセットで作業したことはありません:( –

0

次のコードを試してください。それがあなたを助けることを願っています。

textView.setScaleY(0); 
textView.setScaleX(0); 

textView.animate() 
       .scaleY(1) 
       .scaleX(1) 
       .setDuration(200) 
       .setInterpolator(INTERPOLATOR) 
       .start(); 

INTERPOLATORを以下のコードのようにクラスレベルの変数として宣言します。

private static final Interpolator INTERPOLATOR = new DecelerateInterpolator(); 

これにより、非常に滑らかなアニメーションが得られます。そして、このコードで遊んで、必要に応じてアニメートすることができます。インターポレーターを変更することができます。 詳細については、INTERPOLATORをご覧ください。

+0

滑らかですが、私が必要とするものではありません:)同じ場所に留まり、高さを0から実際の高さに変更する必要があります。 TextView。たぶん私はちょうど "translationY"は必要ありませんが、何か他のもの –

+0

それは得ました。 'textView.setScaleY(0); textView.setScaleX(0); textView.animate() .scaleY(1) .scaleX(1) .setDuration(400) .setInterpolator(インターポレータ) .start(); ' – sanjay

+0

"スケール" の問題は、テキスト自体TextViewだけでなく、スケーリングされています。私が必要とするのは、TextViewの上に白いレイアウト(透過的ではない)のようであり、このレイアウトがスムーズにスクリーンの外に出るようなものです(TextViewは最下部にあります)。このように見えるはずです。おそらく、このレイアウトを追加するのが唯一の方法です、idk :) –

関連する問題