Share to

You can earn money or coins from your share:)

Tips: you can use Sparticle for uploading away3D effects.

Tips: you can download Sparticle for uploading effects.

Tips: The ActionScript editor is supporting Away3D, Starling, Dragonbones and Flex frameworks.

Tips: paste the web page URL then click button:) Your Best Source for Gaming
Login    or

XlistView: A listview which can pull to refresh and load more (3)

/** * @file * @create Apr 18, 2012 5:22:27 PM * @author Maxwin * @description XListView's header */import android.content.Context;import android.util.AttributeSet;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.animation.Animation;import android.view.animation.RotateAnimation;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ProgressBar;import android.widget.TextView;public class XListViewHeader extends LinearLayout {		private LinearLayout mContainer;	private ImageView mArrowImageView;	private ProgressBar mProgressBar;	private TextView mHintTextView;	private int mState = STATE_NORMAL;	private Animation mRotateUpAnim;	private Animation mRotateDownAnim;		private final int ROTATE_ANIM_DURATION = 180;		public final static int STATE_NORMAL = 0;	public final static int STATE_READY = 1;	public final static int STATE_REFRESHING = 2;	public XListViewHeader(Context context) {		super(context);		initView(context);	}	/**	 * @param context	 * @param attrs	 */	public XListViewHeader(Context context, AttributeSet attrs) {		super(context, attrs);		initView(context);	}	private void initView(Context context) {		LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(				LayoutParams.FILL_PARENT, 0);		mContainer = (LinearLayout) LayoutInflater.from(context).inflate(				R.layout.xlistview_header, null);		addView(mContainer, lp);		setGravity(Gravity.BOTTOM);		mArrowImageView = (ImageView)findViewById(;		mHintTextView = (TextView)findViewById(;		mProgressBar = (ProgressBar)findViewById(;				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);	}	public void setState(int state) {		if (state == mState) return ;				if (state == STATE_REFRESHING) {	//show progress			mArrowImageView.clearAnimation();			mArrowImageView.setVisibility(View.INVISIBLE);			mProgressBar.setVisibility(View.VISIBLE);		} else {	// show the arrow picture			mArrowImageView.setVisibility(View.VISIBLE);			mProgressBar.setVisibility(View.INVISIBLE);		}				switch(state){		case STATE_NORMAL:			if (mState == STATE_READY) {				mArrowImageView.startAnimation(mRotateDownAnim);			}			if (mState == STATE_REFRESHING) {				mArrowImageView.clearAnimation();			}			mHintTextView.setText(R.string.xlistview_header_hint_normal);			break;		case STATE_READY:			if (mState != STATE_READY) {				mArrowImageView.clearAnimation();				mArrowImageView.startAnimation(mRotateUpAnim);				mHintTextView.setText(R.string.xlistview_header_hint_ready);			}			break;		case STATE_REFRESHING:			mHintTextView.setText(R.string.xlistview_header_hint_loading);			break;			default:		}				mState = state;	}		public void setVisiableHeight(int height) {		if (height < 0)			height = 0;		LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContainer				.getLayoutParams();		lp.height = height;		mContainer.setLayoutParams(lp);	}	public int getVisiableHeight() {		return mContainer.getHeight();	}}


You must Sign up as a member of Effecthub to view the content.

1128 views    1 comments

You must Sign up as a member of Effecthub to join the conversation.


Or Login with Your Email Address:

Or Sign Up with Your Email Address:
This field must contain a valid email
Password should be at least 1 character