Android Recyclerview的Item里的动画 fillAfter(true) 失效问题

public void startTweenfinal ImageView v, final boolean clicked{ RotateAnimation rotateAnimation = new RotateAnimation0, 45, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f; rotateAnimation.setDuration1000; rotateAnimation.setAnimationListenernew Animation.AnimationListener { @Override public void onAnimationStartAnimation animation { } @Override public void onAnimationEndAnimation animation { if clicked{ Log.e"test","ic_small"; v.setImageResourceR.drawable.ic_close_small; }else { Log.e"test","ic_add"; v.setImageResourceR.drawable.ic_add; } Log.e"test","onAnimationEnd"; } @Override public void onAnimationRepeatAnimation animation { } }; rotateAnimation.setFillAftertrue; v.setAnimationrotateAnimation; rotateAnimation.start;
} 这是在 Recyclerview的Item里,v是动画的目标对象,是一个Imageview,现在的问题是`setFillAftertrue;`与结束监听里的`v.setImageResourceR.drawable.ic_add;`会出问题,直接回到第一帧,而不是停留在最后一帧,如果把结束监听里的`v.setImageResourceR.drawable.ic_add;`去掉,那么就会停留在最后一帧,我的目的是让其停留在最后一帧,然后用一个与最后一帧一样的图片代替目前的图片资源. ps:Item里的动画用tween还是属性动画好?谢谢

要保持view结束的状态,必须改view的属性,而不是改变动画的属性动画并不会帮助你改变View的属性
rotateAnimation.setFillAftertrue;
rotateAnimation.setFillBeforefalse;
你试一试有没有用

发表评论

电子邮件地址不会被公开。 必填项已用*标注