package com.majcit.portal.widget;
import com.majcit.portal.R;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.ScrollView;
import android.widget.TextView;
public class MPRefreshView extends LinearLayout {
private static final String TAG = "MPRefreshView";
private static final boolean DEBUG = true;
//刷新状态
//下拉去刷新
private static final int PULL_TO_REFRESH = 2;
//松开去刷新
private static final int RELEASE_TO_REFRESH = 3;
//正在刷新中
private static final int REFRESHING = 4;
//移动最小弹出刷新框的像素
private static final int MIN_DELTA = 12;
private int mLastMotionY;
private View mHeaderView;
//子控件
private AdapterView<?> mAdapterView;
private ScrollView mScrollView;
//Header
private int mHeaderViewHeight;
private int mHeaderState;
private ImageView mHeaderImageView;
private TextView mHeaderUpdateTextView;
private ProgressBar mHeaderProgressBar;
private TextView mHeaderTextView;
private OnRefreshListener mOnRefreshListener;
private LayoutInflater mInflater;
/**
* 变为向下的箭头,改变箭头方向
*/
private RotateAnimation mFlipAnimation;
/**
* 变为逆向的箭头,旋转
*/
private RotateAnimation mReverseFlipAnimation;
//构造函数
public MPRefreshView(Context context) {
super(context);
init(context);
}
//构造函数
public MPRefreshView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
//初始化
private void init(Context context) {
mFlipAnimation = new RotateAnimation(0, -180,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
mFlipAnimation.setInterpolator(new LinearInterpolator());
mFlipAnimation.setDuration(250);
mFlipAnimation.setFillAfter(true);
mReverseFlipAnimation = new RotateAnimation(-180, 0,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
mReverseFlipAnimation.setInterpolat
自定义下拉菜单
最新推荐文章于 2024-05-14 19:37:53 发布