3

ListView でアイテムをフライインするための次のアニメーションがあります。

 <set xmlns:android="http://schemas.android.com/apk/res/android" >

     <translate
         android:duration="500"
         android:fromYDelta="100%p"
         android:toYDelta="0" />

     <alpha
         android:duration="500"
         android:fromAlpha="0.0"
         android:toAlpha="1.0" />

 </set>

そして、アダプター内の getView() の最後で次を使用して開始します。

Animation animation = AnimationUtils.loadAnimation(
MainActivity.myContext, R.anim.push_up_in);
vi.startAnimation(animation);
animation = null;  


機能:アプリの開始時に、1 つのブロックですぐに表示される項目に飛びます。スクロールすると、すべての新しいアイテムが個別に飛び出します。

私が欲しいもの:各アイテムは、アプリの開始時に個別にフライインします- スクロールするのと同じように。

私が試したこと: Item-Position に応じて AnimationDuration を設定する:

if (position < 6){
animation.setDuration(500 * position);
} else  {
animation.setDuration(100*position);    //Because it get's too slow by staying with 500 * position      
} 

これは多かれ少なかれ機能しますが、流動的ではなく、画面が6つ以上のアイテムを保持できると奇妙に見えます。

各アイテムのフライングインをより流動的にする簡単な方法はありますか?
前もって感謝します!

4

1 に答える 1

5

この素敵なライブラリを試すことをお勧めします: ListViewAnimations

「ViewAnimations は、開発者がアニメーション付きの ListView を簡単に作成できるオープン ソースの Android ライブラリです。このプロジェクトを引用し、アプリにライセンスを含めることを条件に、Android アプリで自由に使用してください。haarman.niek への言及このライブラリを使用したアプリについて [at] gmail.com でお知らせください。メッセージのタイトルは「」で始めてください

https://github.com/nhaarman/ListViewAnimations

于 2013-09-05T22:40:48.677 に答える