一次为所有回收站视图项目设置动画
Animate all recycler view items at once
我有一个带有图像的回收站视图。我可以在单击某个项目时应用翻转动画。现在我想在倒数计时器用完时将所有图像一起翻转。如何为所有网格项目设置一次动画?
这是我的适配器的 onBindViewHolder 的样子,
@Override
public void onBindViewHolder(final CustomViewHolder viewHolder, final int position) {
Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView);
viewHolder.holder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.crad_flip_right_out);
AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.card_flip_left_in);
setLeftOut.setTarget(viewHolder.frontView);
setLeftIn.setTarget(viewHolder.backView);
setLeftOut.start();
setLeftIn.start();
}
});
}
试试这个:
@Override
public void onBindViewHolder(final CustomViewHolder viewHolder, final int position) {
Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView);
viewHolder.holder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animateView(viewHolder);
}
});
}
public void animateViewsOfRecyclerView(){
for(int i=0;i<recyclerviewAdapter.getCount();++i){
animateView(recyclerview.findViewHolderForAdapterPosition(i));
}
}
public void animateView(ViewHolder viewholder){
AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.crad_flip_right_out);
AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.card_flip_left_in);
setLeftOut.setTarget(viewHolder.frontView);
setLeftIn.setTarget(viewHolder.backView);
setLeftOut.start();
setLeftIn.start();
}
每当您需要为所有视图设置动画时,请调用方法 "animateViewsOfRecyclerView()"。
我有一个带有图像的回收站视图。我可以在单击某个项目时应用翻转动画。现在我想在倒数计时器用完时将所有图像一起翻转。如何为所有网格项目设置一次动画?
这是我的适配器的 onBindViewHolder 的样子,
@Override
public void onBindViewHolder(final CustomViewHolder viewHolder, final int position) {
Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView);
viewHolder.holder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.crad_flip_right_out);
AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.card_flip_left_in);
setLeftOut.setTarget(viewHolder.frontView);
setLeftIn.setTarget(viewHolder.backView);
setLeftOut.start();
setLeftIn.start();
}
});
}
试试这个:
@Override
public void onBindViewHolder(final CustomViewHolder viewHolder, final int position) {
Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView);
viewHolder.holder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animateView(viewHolder);
}
});
}
public void animateViewsOfRecyclerView(){
for(int i=0;i<recyclerviewAdapter.getCount();++i){
animateView(recyclerview.findViewHolderForAdapterPosition(i));
}
}
public void animateView(ViewHolder viewholder){
AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.crad_flip_right_out);
AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context,
R.animator.card_flip_left_in);
setLeftOut.setTarget(viewHolder.frontView);
setLeftIn.setTarget(viewHolder.backView);
setLeftOut.start();
setLeftIn.start();
}
每当您需要为所有视图设置动画时,请调用方法 "animateViewsOfRecyclerView()"。