XListViewHeader

    xiaoxiao2025-05-20  3

    package org.com.cctest.view; /**  * @file XListViewHeader.java  * @create Apr 18, 2012 5:22:27 PM  * @author Maxwin  * @description XListView's header  */ import com.example.day02.R; 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) {         // 锟斤拷始锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟剿拷锟絭iew锟竭讹拷为0         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(R.id.xlistview_header_arrow);         mHintTextView = (TextView)findViewById(R.id.xlistview_header_hint_textview);         mProgressBar = (ProgressBar)findViewById(R.id.xlistview_header_progressbar);                  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) {    // 锟斤拷示锟斤拷锟�             mArrowImageView.clearAnimation();             mArrowImageView.setVisibility(View.INVISIBLE);             mProgressBar.setVisibility(View.VISIBLE);         } else {    // 锟斤拷示锟斤拷头图片             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();     } }
    转载请注明原文地址: https://ju.6miu.com/read-1299095.html
    最新回复(0)