package com.example.xrecyclerview; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class LoadingMoreFooter extends LinearLayout { public final static int STATE_LOADING = 0; public final static int STATE_COMPLETE = 1; public final static int STATE_NOMORE = 2; private TextView mText; private AnimationDrawable mAnimationDrawable; private ImageView mIvProgress; public LoadingMoreFooter(Context context) { super(context); initView(context); } /** * @param context * @param attrs */ public LoadingMoreFooter(Context context, AttributeSet attrs) { super(context, attrs); initView(context); } public void initView(Context context) { LayoutInflater.from(context).inflate(R.layout.yun_refresh_footer, this); mText = (TextView) findViewById(R.id.msg); mIvProgress = (ImageView) findViewById(R.id.iv_progress); mAnimationDrawable = (AnimationDrawable) mIvProgress.getDrawable(); if (!mAnimationDrawable.isRunning()) { mAnimationDrawable.start(); } setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); } public void setState(int state) { switch (state) { case STATE_LOADING: if (!mAnimationDrawable.isRunning()) { mAnimationDrawable.start(); } mIvProgress.setVisibility(View.VISIBLE); mText.setText(getContext().getText(R.string.listview_loading)); this.setVisibility(View.VISIBLE); break; case STATE_COMPLETE: if (mAnimationDrawable.isRunning()) { mAnimationDrawable.stop(); } mText.setText(getContext().getText(R.string.listview_loading)); this.setVisibility(View.GONE); break; case STATE_NOMORE: if (mAnimationDrawable.isRunning()) { mAnimationDrawable.stop(); } mText.setText(getContext().getText(R.string.nomore_loading)); mIvProgress.setVisibility(View.GONE); this.setVisibility(View.VISIBLE); break; } } public void reSet() { this.setVisibility(GONE); } }