package com.videogo.widget;
|
|
import android.content.Context;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.animation.Animation;
|
import android.view.animation.RotateAnimation;
|
import android.widget.ImageView;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
import com.videogo.widget.pulltorefresh.LoadingLayout;
|
import com.videogo.widget.pulltorefresh.PullToRefreshBase.Orientation;
|
|
import ezviz.ezopensdk.R;
|
|
public class PullToRefreshHeader extends LoadingLayout {
|
|
public enum Style {
|
NORMAL, NO_TIME, MORE
|
}
|
|
private ImageView mArrowImageView;
|
private ProgressBar mProgressBar;
|
private TextView mHintTextView, mHeaderTimeView, mHintMoreView;
|
private ViewGroup mHeaderTimelayout;
|
|
private Animation mRotateUpAnim, mRotateDownAnim;
|
|
private Style mStyle = Style.NORMAL;
|
|
private final static int ROTATE_ANIM_DURATION = 180;
|
|
public PullToRefreshHeader(Context context) {
|
this(context, Style.NORMAL);
|
}
|
|
public PullToRefreshHeader(Context context, Style style) {
|
super(context, true, Orientation.VERTICAL);
|
setContentView(R.layout.pull_to_refresh_header);
|
|
mArrowImageView = (ImageView) findViewById(R.id.header_arrow);
|
mHintTextView = (TextView) findViewById(R.id.header_hint);
|
mHeaderTimeView = (TextView) findViewById(R.id.header_time);
|
mProgressBar = (ProgressBar) findViewById(R.id.header_progress);
|
mHeaderTimelayout = (ViewGroup) findViewById(R.id.header_time_layout);
|
mHintMoreView = (TextView) findViewById(R.id.header_hint_more);
|
|
mRotateUpAnim = new RotateAnimation(0.0f, -180.0f, Animation.RELATIVE_TO_SELF, 0.5f,
|
Animation.RELATIVE_TO_SELF, 0.5f);
|
mRotateUpAnim.setDuration(ROTATE_ANIM_DURATION);
|
mRotateUpAnim.setFillAfter(true);
|
mRotateDownAnim = new RotateAnimation(-180.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f,
|
Animation.RELATIVE_TO_SELF, 0.5f);
|
mRotateDownAnim.setDuration(ROTATE_ANIM_DURATION);
|
mRotateDownAnim.setFillAfter(true);
|
|
if (style == Style.NO_TIME) {
|
mHeaderTimelayout.setVisibility(View.GONE);
|
} else if (style == Style.MORE) {
|
mHeaderTimelayout.setVisibility(View.GONE);
|
}
|
mStyle = style;
|
}
|
|
@Override
|
public void pullToRefresh() {
|
if (mStyle == Style.MORE) {
|
mHintTextView.setText(R.string.xlistview_header_hint_more);
|
} else {
|
mHintTextView.setText(R.string.xlistview_header_hint_normal);
|
}
|
if (mRotateUpAnim == mArrowImageView.getAnimation()) {
|
mArrowImageView.startAnimation(mRotateDownAnim);
|
}
|
}
|
|
@Override
|
public void refreshing() {
|
mHintTextView.setText(R.string.xlistview_header_hint_loading);
|
mArrowImageView.clearAnimation();
|
mArrowImageView.setVisibility(View.GONE);
|
mProgressBar.setVisibility(View.VISIBLE);
|
}
|
|
@Override
|
public void releaseToRefresh() {
|
if (mStyle == Style.MORE) {
|
mHintTextView.setText(R.string.xlistview_footer_hint_ready);
|
} else {
|
mHintTextView.setText(R.string.xlistview_header_hint_ready);
|
}
|
mArrowImageView.startAnimation(mRotateUpAnim);
|
}
|
|
@Override
|
public void onPull(float scaleOfLayout) {
|
}
|
|
@Override
|
public void reset() {
|
if (mStyle == Style.MORE) {
|
mHintTextView.setText(R.string.xlistview_header_hint_more);
|
} else {
|
mHintTextView.setText(R.string.xlistview_header_hint_normal);
|
}
|
mArrowImageView.clearAnimation();
|
mArrowImageView.setVisibility(View.VISIBLE);
|
mProgressBar.setVisibility(View.GONE);
|
mHintMoreView.setVisibility(View.GONE);
|
}
|
|
@Override
|
public void disableRefresh() {
|
if (mStyle == Style.MORE) {
|
mHintMoreView.setVisibility(View.VISIBLE);
|
mHintTextView.setText(R.string.xlistview_footer_no_more);
|
}
|
}
|
|
public void setLastRefreshTime(CharSequence text) {
|
mHeaderTimeView.setText(text);
|
}
|
}
|