package com.aspsine.swipetoloadlayout.demo.view.header;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.util.AttributeSet;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.aspsine.swipetoloadlayout.SwipeRefreshTrigger;
import com.aspsine.swipetoloadlayout.SwipeTrigger;
import com.aspsine.swipetoloadlayout.demo.R;
/**
* Created by Aspsine on 2015/11/5.
*/
public class JdRefreshHeaderView extends RelativeLayout implements SwipeTrigger, SwipeRefreshTrigger {
private ImageView ivSpeed;
private ImageView ivRefresh;
private AnimationDrawable mAnimDrawable;
private Animation mTwinkleAnim;
private int mTriggerOffset;
public JdRefreshHeaderView(Context context) {
super(context);
}
public JdRefreshHeaderView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public JdRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mTriggerOffset = context.getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_jd);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
ivRefresh = (ImageView) findViewById(R.id.ivRefresh);
ivSpeed = (ImageView) findViewById(R.id.ivSpeed);
mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground();
mTwinkleAnim = AnimationUtils.loadAnimation(getContext(), R.anim.twinkle);
}
@Override
public void onRefresh() {
ivSpeed.setVisibility(VISIBLE);
ivSpeed.startAnimation(mTwinkleAnim);
if (!mAnimDrawable.isRunning()){
mAnimDrawable.start();
}
}
@Override
public void onPrepare() {
ivSpeed.clearAnimation();
ivSpeed.setVisibility(GONE);
}
@Override
public void onMove(int y, boolean isComplete, boolean automatic) {
}
@Override
public void onRelease() {
if (!mAnimDrawable.isRunning()){
mAnimDrawable.start();
}
}
@Override
public void onComplete() {
}
@Override
public void onReset() {
mAnimDrawable.stop();
ivSpeed.clearAnimation();
ivSpeed.setVisibility(GONE);
}
}