package zone.com.zrefreshlayout.header;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import zone.com.zrefreshlayout.AUtils;
import zone.com.zrefreshlayout.AnimateBack;
import zone.com.zrefreshlayout.IHeaderView;
import zone.com.zrefreshlayout.ZRefreshLayout;
import zone.com.zrefreshlayout.utils.ScreenUtils;
import zone.com.zrefreshlayout.v4.MeterialCircle;
import static zone.com.zrefreshlayout.utils.LogUtils.log;
/**
* Created by fuzhipeng on 2017/1/12.
*/
public class MeterialHead implements IHeaderView {
private int[] colors;
private MeterialCircle mMeterialCircle;
private ZRefreshLayout zRefreshLayout;
public MeterialHead(int[] colors) {
this.colors = colors;
}
public MeterialHead() {
}
@Override
public IHeaderView clone_() {
MeterialHead clone = new MeterialHead(colors);
return clone;
}
@Override
public View getView(ZRefreshLayout zRefreshLayout) {
this.zRefreshLayout = zRefreshLayout;
int[] screenPixs = ScreenUtils.getScreenPix((Activity) zRefreshLayout.getContext());
mMeterialCircle = new MeterialCircle(zRefreshLayout, (int) (screenPixs[1] * 0.065));
if(colors!=null)
mMeterialCircle.setColorSchemeColors(colors);
AUtils.setHeaderHeightToRefresh(zRefreshLayout,(int) (screenPixs[1] * 0.065*2.0));
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mMeterialCircle.getView().getLayoutParams();
lp.bottomMargin= (int) (screenPixs[1] * 0.065/2);
mMeterialCircle.getView().setLayoutParams(lp);
return mMeterialCircle.getView();
}
@Override
public void onPullingDown(float fraction, float headHeight) {
mMeterialCircle.pullProgress(fraction);
}
@Override
public void refreshAble(boolean refreshAble) {
}
@Override
public void animateBack(AnimateBack animateBack, float fraction, float headHeight, boolean isPinContent) {
}
@Override
public boolean interceptAnimateBack(AnimateBack animateBack, final ZRefreshLayout.IScroll iScroll) {
if (zRefreshLayout.isPinContent() && animateBack == AnimateBack.Complete_Back) {
mMeterialCircle.startScaleDownAnimation(new MeterialCircle.ScaleDownCallback() {
@Override
public void over() {
log("over()");
AUtils.notityRefreshCompeleStateToRest(iScroll);
}
});
return true;
}
return false;
}
@Override
public void onRefreshing(float headHeight, boolean isAutoRefresh) {
if (isAutoRefresh) {
log("startScaleUpAnimation");
// mMeterialCircle.startScaleUpAnimation();
}
log("mProgress.start()");
mMeterialCircle.start();
log("onRefreshing");
}
@Override
public void onComplete() {
mMeterialCircle.reset();
mMeterialCircle.getView().setTranslationY(0);//众神归位
log("mProgress.reset()");
log("onComplete");
}
}