package com.example.lghdialog.webview; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.example.lghdialog.R; /** * Created by Administrator on 2016/8/30. */ public class LghErrorEmptyLayout extends LinearLayout implements View.OnClickListener{ private Context mContext; private ImageView mErrorImg; private ProgressBar mProgress; private TextView mTextView; private int errorState; public static final int HIDE_LAYOUT=4; public static final int NETWORK_ERROR=1; public static final int NETWORK_LOADING=2; public static final int NO_DATA=3; public static final int SHOW_LAYOUT=5; private Animation fade_in,fade_out; private onLayoutClickListener listener; public LghErrorEmptyLayout(Context context, AttributeSet attrs) { super(context, attrs); mContext=context; initView(); } private void initView(){ View view= View.inflate(mContext, R.layout.lgh_error_layout,null); LayoutParams params=new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); view.setLayoutParams(params); mErrorImg= (ImageView) view.findViewById(R.id.fail_img); mProgress= (ProgressBar) view.findViewById(R.id.loading); mTextView= (TextView) view.findViewById(R.id.loading_txt); fade_in= AnimationUtils.loadAnimation(mContext, R.anim.lgh_fade_in); fade_in.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { LghErrorEmptyLayout.this.setVisibility(VISIBLE); } @Override public void onAnimationEnd(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } }); fade_out= AnimationUtils.loadAnimation(mContext, R.anim.lgh_fade_out); fade_out.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { LghErrorEmptyLayout.this.setVisibility(GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); addView(view); } public void setLayoutListener(onLayoutClickListener listener) { this.listener = listener; } public int getLayoutType(){ return errorState; } public void setLayoutType(int state){ // setVisibility(VISIBLE); switch (state){ case NETWORK_ERROR: if (this.getVisibility()==GONE){ showLayout(); } errorState=NETWORK_ERROR; mErrorImg.setVisibility(VISIBLE); mProgress.setVisibility(GONE); mTextView.setText("无法连接网络"); // if (!common.hasInternet()){ // mTextView.setText(mContext.getString(R.string.error_no_network)); // mErrorImg.setBackgroundResource(R.mipmap.page_icon_network); // }else { // mTextView.setText(mContext.getString(R.string.error_no_content)); // mErrorImg.setBackgroundResource(R.mipmap.pagefailed_bg); // } break; case NETWORK_LOADING: if (this.getVisibility()==GONE){ showLayout(); } errorState=NETWORK_LOADING; mErrorImg.setVisibility(GONE); mProgress.setVisibility(VISIBLE); mTextView.setText(mContext.getString(R.string.loading_txt)); break; case HIDE_LAYOUT: errorState=HIDE_LAYOUT; hideLayout(); break; case SHOW_LAYOUT: errorState=SHOW_LAYOUT; showLayout(); break; case NO_DATA: if (this.getVisibility()==GONE){ showLayout(); } errorState=NO_DATA; mProgress.setVisibility(GONE); mErrorImg.setVisibility(VISIBLE); mErrorImg.setBackgroundResource(R.drawable.ic_block_black_24dp); mTextView.setText(mContext.getString(R.string.error_no_data)); break; } } public TextView getmTextView() { return mTextView; } @Override public void onClick(View view) { if (listener!=null){ listener.onClick(); } } public interface onLayoutClickListener{ void onClick(); } public void hideLayout(){ this.startAnimation(fade_out); } public void showLayout(){ this.startAnimation(fade_in); } }