package me.storm.ninegag.view; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; import me.storm.ninegag.R; import me.storm.ninegag.view.titanic.Titanic; import me.storm.ninegag.view.titanic.TitanicTextView; /** * Created by storm on 14-4-12. */ public class LoadingFooter { protected View mLoadingFooter; TextView mLoadingText; TitanicTextView mTitanicText; private Titanic mTitanic; protected State mState = State.Idle; public static enum State { Idle, TheEnd, Loading } public LoadingFooter(Context context) { mLoadingFooter = LayoutInflater.from(context).inflate(R.layout.loading_footer, null); mLoadingFooter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 屏蔽点击 } }); mLoadingText = (TextView) mLoadingFooter.findViewById(R.id.textView); mTitanicText = (TitanicTextView) mLoadingFooter.findViewById(R.id.tv_titanic); mTitanic = new Titanic(); mTitanic.start(mTitanicText); setState(State.Idle); } public View getView() { return mLoadingFooter; } public State getState() { return mState; } public void setState(final State state, long delay) { mLoadingFooter.postDelayed(new Runnable() { @Override public void run() { setState(state); } }, delay); } public void setState(State status) { if (mState == status) { return; } mState = status; mLoadingFooter.setVisibility(View.VISIBLE); switch (status) { case Loading: mLoadingText.setVisibility(View.GONE); mTitanicText.setVisibility(View.VISIBLE); break; case TheEnd: mLoadingText.setVisibility(View.VISIBLE); mTitanicText.setVisibility(View.GONE); break; default: mLoadingFooter.setVisibility(View.GONE); break; } } }