package com.aspsine.swipetoloadlayout.demo.view.header; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.support.v4.view.ViewCompat; import android.util.AttributeSet; import android.widget.FrameLayout; import com.aspsine.swipetoloadlayout.SwipeRefreshTrigger; import com.aspsine.swipetoloadlayout.SwipeTrigger; import com.aspsine.swipetoloadlayout.demo.R; import com.aspsine.swipetoloadlayout.demo.view.GoogleCircleProgressView; /** * Created by aspsine on 15/11/7. */ public class GoogleCircleHookRefreshHeaderView extends FrameLayout implements SwipeTrigger, SwipeRefreshTrigger { private GoogleCircleProgressView progressView; private int mTriggerOffset; private int mFinalOffset; public GoogleCircleHookRefreshHeaderView(Context context) { this(context, null); } public GoogleCircleHookRefreshHeaderView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public GoogleCircleHookRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mTriggerOffset = context.getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_google); mFinalOffset = context.getResources().getDimensionPixelOffset(R.dimen.refresh_final_offset_google); } @Override protected void onFinishInflate() { super.onFinishInflate(); progressView = (GoogleCircleProgressView) findViewById(R.id.googleProgress); progressView.setColorSchemeResources( R.color.google_blue, R.color.google_red, R.color.google_yellow, R.color.google_green); progressView.setStartEndTrim(0, (float) 0.75); } @Override public void onRefresh() { progressView.start(); } @Override public void onPrepare() { progressView.setStartEndTrim(0, (float) 0.75); } @Override public void onMove(int y, boolean isComplete, boolean automatic) { float alpha = y / (float) mTriggerOffset; ViewCompat.setAlpha(progressView, alpha); if (!isComplete) { progressView.setProgressRotation(y / (float) mFinalOffset); } } @Override public void onRelease() { } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) @Override public void onComplete() { progressView.animate().scaleX(0).scaleY(0).setDuration(300); } @Override public void onReset() { progressView.stop(); ViewCompat.setAlpha(progressView, 1f); ViewCompat.setScaleX(progressView, 1f); ViewCompat.setScaleY(progressView, 1f); } }