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;  


它的作用:在应用程序开始时,它会飞入将立即在一个块中可见的项目。通过滚动每个新项目分别飞入。

我想要什么:每个项目都应在应用程序开始时单独飞入- 就像它通过滚动发生一样。

我尝试了什么:根据 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 是一个开源 Android 库,允许开发人员轻松创建带有动画的 ListView。只要您引用此项目并在您的应用程序中包含许可证,您就可以在您的 Android 应用程序中随意使用它。提及 haarman.niek [at] gmail.com 非常欢迎您使用此库来了解您的应用!以“开始您的消息标题”

https://github.com/nhaarman/ListViewAnimations

于 2013-09-05T22:40:48.677 回答