我为所有项目添加了反弹动画,这是一行 recylerview。但是动画是在行出现时开始的。滚动事件停止时如何启动动画?
有什么想法吗?
我在 onbindviewholder
中调用以下方法:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
//some codes here
setReboundAnimationtoProfilePicture(holder.image5IV);
}
private void setReboundAnimationtoProfilePicture(ImageView imageView){
SpringSystem springSystem;
Spring mScaleSpring;
SpringConfig config;
springSystem = SpringSystem.create();
//config = SpringConfig.defaultConfig;
mScaleSpring = springSystem.createSpring();
Crashlytics.log(Log.ASSERT, "velocity ", mScaleSpring.getVelocity() +"");
Random rand = new Random();
int randomTension = rand.nextInt((40 - 28) + 1) + 28;
int randomFriction = rand.nextInt((25 - 15) + 1) + 15;
//config.tension = 40;
//config.friction = 5;
SpringListener mSpringListener = new SpringListener(imageView);
mScaleSpring.addListener(mSpringListener);
Handler handler = new Handler();
handler.post(new myRunnable(mScaleSpring, handler));
}
Spring 监听器
private class SpringListener extends SimpleSpringListener {
private ImageView imageView;
public SpringListener(ImageView imageView){
this.imageView = imageView;
}
@Override
public void onSpringUpdate(Spring spring) {
float mappedValue = (float) SpringUtil.mapValueFromRangeToRange(spring.getCurrentValue(), 0, 1, 1, 0.5);
imageView.setScaleX(mappedValue);
imageView.setScaleY(mappedValue);
}
}
谢谢。
最佳答案
也许你可以使用onScrollListener()和这样的事情:
RecyclerView.setOnScrollListener(new OnScrollListener() {
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//Is scrolling
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
//Start animation
}
}});
关于android - Recyclerview 反弹动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793320/