package zone.com.zrefreshlayout.footer;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.nineoldandroids.animation.ValueAnimator;
import zone.com.zanimate.value.ValueAnimatorProxy;
import zone.com.zrefreshlayout.AUtils;
import zone.com.zrefreshlayout.IFooterView;
import zone.com.zrefreshlayout.R;
import zone.com.zrefreshlayout.ZRefreshLayout;
import zone.com.zrefreshlayout.utils.ScreenUtils;
/**
* Created by fuzhipeng on 2017/1/10.
*/
public class LoadFooter implements IFooterView {
private View rootView;
private ImageView loadingView;
private ZRefreshLayout zRefreshLayout;
@Override
public View getView(ZRefreshLayout zRefreshLayout) {
this.zRefreshLayout=zRefreshLayout;
rootView= View.inflate(zRefreshLayout.getContext(), R.layout.footer, null);
loadingView = (ImageView) rootView.findViewById(R.id.iv_loading);
int[] screenPixs = ScreenUtils.getScreenPix((Activity) zRefreshLayout.getContext());
rootView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT
, (int) (screenPixs[1] * 0.1)));
ViewGroup.LayoutParams loadingViewLp = loadingView.getLayoutParams();
loadingViewLp.width = (int) (screenPixs[1] * 0.05);
loadingViewLp.height =(int) (screenPixs[1] * 0.05);
loadingView.setLayoutParams(loadingViewLp);
return rootView;
}
@Override
public void onStart(ZRefreshLayout zRefreshLayout, float footerHeight) {
loadingView.setVisibility(View.VISIBLE);
valueAnimator.start();
AUtils.notityLoadMoreListener(zRefreshLayout);
}
@Override
public void onComplete(ZRefreshLayout zRefreshLayout) {
if(valueAnimator.isRunning())
valueAnimator.end();
loadingView.setVisibility(View.INVISIBLE);
AUtils.notifyLoadMoreCompleteListener(zRefreshLayout);
}
private ValueAnimatorProxy valueAnimator = ValueAnimatorProxy.ofInt(0, 360)
.setDuration(1200)
.setInterpolator(new LinearInterpolator())
.setRepeatCount(ValueAnimator.INFINITE)
.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
// 30 =360/12;
// ZRefreshLayout.log("animation.getAnimatedValue():"+animation.getAnimatedValue()+"——————进度:"+((Integer) animation.getAnimatedValue()/30)*30F);
loadingView.setRotation(((Integer) animation.getAnimatedValue()/30)*30F);
}
});
@Override
public IFooterView clone_() {
LoadFooter clone =new LoadFooter();
return clone;
}
}