如何为每个 ListView 项目中的视图设置动画?
How to animate views within each ListView items?
如果您在 Android 上使用过 Google+ 应用程序,您一定已经注意到帖子上的评论是动态的,使用 淡入淡出 每个 ListView 项目上的动画。
我想在我的每个 ListView 项目中为某些视图(如 TextView 等)实现这种类型的动画。
我可以实现 fadeIn 和 fadeOut 动画部分,但问题是我在哪里放置它的动画代码每个膨胀的 ListView 项目独立工作。
如有任何帮助,我们将不胜感激。提前致谢。
请使用 BaseAdapter
并将必要的动画代码放入您的 getView()
方法中。
只需膨胀视图并在视图第一次膨胀时启动动画。 (提示 - 当 convertView == null
)
使用 ViewHolder 模式来唯一地保存单个列表项的每个元素,并启动每个列表项中不需要的任何 View
动画。
要启动动画,请在 XML 中创建一个动画并像这样启动动画,
Animation anim = AnimationUtils.loadAnimation(this, R.anim.slide_up);
anim.setInterpolator(new DecelerateInterpolator());
anim.setDuration(500);
anim.setStartOffset(100);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
progress.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
progress.startAnimation(anim);
让您了解如何在 XML、
中创建动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="200"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
<translate
android:duration="200"
android:fromYDelta="0%p"
android:toYDelta="5%p" />
</set>
您可以使用动画集将多个动画组合在一起并同时播放。
还请更详细地探索 Animation API,您会发现 setRepeatMode()
和 setRepeatCount()
等有用的方法,它们会对您有所帮助达到预期的效果。
此外,您不需要两个单独的 TextView,您可以使用一个。正确使用动画监听器即可。
希望对您有所帮助。
如果您在 Android 上使用过 Google+ 应用程序,您一定已经注意到帖子上的评论是动态的,使用 淡入淡出 每个 ListView 项目上的动画。
我想在我的每个 ListView 项目中为某些视图(如 TextView 等)实现这种类型的动画。
我可以实现 fadeIn 和 fadeOut 动画部分,但问题是我在哪里放置它的动画代码每个膨胀的 ListView 项目独立工作。
如有任何帮助,我们将不胜感激。提前致谢。
请使用 BaseAdapter
并将必要的动画代码放入您的 getView()
方法中。
只需膨胀视图并在视图第一次膨胀时启动动画。 (提示 - 当 convertView == null
)
使用 ViewHolder 模式来唯一地保存单个列表项的每个元素,并启动每个列表项中不需要的任何 View
动画。
要启动动画,请在 XML 中创建一个动画并像这样启动动画,
Animation anim = AnimationUtils.loadAnimation(this, R.anim.slide_up);
anim.setInterpolator(new DecelerateInterpolator());
anim.setDuration(500);
anim.setStartOffset(100);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
progress.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
progress.startAnimation(anim);
让您了解如何在 XML、
中创建动画<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="200"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
<translate
android:duration="200"
android:fromYDelta="0%p"
android:toYDelta="5%p" />
</set>
您可以使用动画集将多个动画组合在一起并同时播放。
还请更详细地探索 Animation API,您会发现 setRepeatMode()
和 setRepeatCount()
等有用的方法,它们会对您有所帮助达到预期的效果。
此外,您不需要两个单独的 TextView,您可以使用一个。正确使用动画监听器即可。
希望对您有所帮助。