我希望实现像google + listview这样的动画体验。当用户滑动列表视图时,列表视图中首次加载的每个项目都将启动动画。我尝试在getview方法中添加动画来为每个项目设置动画,但我想要确认这种方式是否是一种好的方法,我是否需要扩展listview类来完成这个?所以请给我一些建议或一些像google + listview的例子。谢谢你们。)
答案 0 :(得分:15)
您不需要扩展ListView类。
这是一个实现Google plus类似ListView动画的Android库。
它的工作方式是,在适配器的getView
方法中,如果它是新加载的,它会为视图设置动画。
(因此,它扩展了适配器,而不是ListView,以制作动画。)< / p>
答案 1 :(得分:2)
Google Plus风格ListViews在Android上风靡一时,因为它在呈现数据时显示的光滑动画。当用户向下滚动时,新项目会动画到视图中,坦率地说它看起来很棒 的 up_from_bottom.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
<translate
android:fromXDelta="0%" android:toXDelta="0%"
android:fromYDelta="100%" android:toYDelta="0%"
android:duration="400" />
</set>
从顶部下来 的 down_from_top.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
<translate
android:fromXDelta="0%" android:toXDelta="0%"
android:fromYDelta="-100%" android:toYDelta="0%"
android:duration="400" />
</set>
在列表适配器类
中 private int lastPosition = -1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//Load your view, populate it, etc...
View view = ...;
Animation animation = AnimationUtils.loadAnimation(getContext(), (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
view.startAnimation(animation);
lastPosition = position;
return view;
}
从http://kylewbanks.com/blog/Implementing-Google-Plus-Style-ListView-Animations-on-Android
复制