1、准备效果,在res/anim文件下新建动画xml文件
layout_animation_fall_down.xml
<?xml version="1.0" encoding="utf-8"?> <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:animation="@anim/item_animation_fall_down" android:delay="15%" android:animationOrder="normal" />
item_animation_fall_down.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@integer/anim_duration_medium"> <translate android:fromYDelta="-20%" android:toYDelta="0" android:interpolator="@android:anim/decelerate_interpolator" /> <alpha android:fromAlpha="0" android:toAlpha="1" android:interpolator="@android:anim/decelerate_interpolator" /> <scale android:fromXScale="105%" android:fromYScale="105%" android:toXScale="100%" android:toYScale="100%" android:pivotX="50%" android:pivotY="50%" android:interpolator="@android:anim/decelerate_interpolator" /> </set>2、新建主界面布局文件和recyclerView的子项布局文件,这里就不再写这部分的代码了;
3、开始在主程序中写代码了
首先还是应该添加适配器,具体内容这里就不多说了,只是一个大体的做法,内容根据自己的需求自行添加。
public class AnimationAdapter extends RecyclerView.Adapter<AnimationAdapter.ViewHolder> { public static final int ITEM_COUNT = 64; @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final LayoutInflater inflater = LayoutInflater.from(parent.getContext()); return new ViewHolder(inflater.inflate(R.layout.item_rv_animation, parent, false)); } @Override public void onBindViewHolder(ViewHolder holder, int position) { } @Override public int getItemCount() { return ITEM_COUNT; } static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } } }接下来重点来了
1. 实例化控件这是必须的
recyclerView = findViewById(R.id.recycler_view);2. 设置recyclerView的适配器
recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(new CardAdapter());
3.设置动画效果
LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(context, R.anim.layout_animation_fall_down); recyclerView.setLayoutAnimation(controller); recyclerView.getAdapter().notifyDataSetChanged(); recyclerView.scheduleLayoutAnimation();OK了,这样运行之后你就会发现动画效果出现了。
当然动画效果不止这一种,不同的效果只需要修改anim文件下的xml文件即可。