/** * author : lipan * filename : LoadingDialog.java * create_time : 2014年4月11日 下午8:43:53 */ package com.sets.speedtest.common; import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface.OnDismissListener; import android.view.LayoutInflater; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import com.sets.speedtest.R; import com.sets.speedtest.manager.http.WSClient; import com.sets.speedtest.utils.ViewUtils; /** * @author : lipan * * @create_time : 2014年4月11日 下午8:43:53 * * @desc : Loading时显示的dialog... * * @update_time : * @update_desc : * * 使用方法: * * //显示 loading * CommLoading.show(params); * * //显示loading,监听laoding的隐藏事件 * CommLoading.show(context, new OnDismissListener(){ //.... }); * * //隐藏loading * CommLoading.dismiss(); * * */ @SuppressLint("InflateParams") public class CommLoading { // loading Dialog public static Dialog loadingDialog; private static Animation loadingAnimation; /** * 显示loading框 * * @param context * 上下文对象 */ public static Dialog show(Context context) { return show(context, null, null); } /** * 显示loading框 * * @param context * 上下文对象 * @param loadingText * loading文字,默认为 “加载中...” */ public static Dialog show(Context context, Integer loadingText) { return show(context, loadingText, null); } /** * 显示loading框 * * @param context * 上下文对象 * @param loadingText * loading文字,默认为 “加载中...” * @param dismissListener * dialog消失时触发的事件...如dialog消失时,取消当前Http请求 */ public static Dialog show(final Context context, Integer loadingText, OnDismissListener onDismissListener) { loadingAnimation = AnimationUtils.loadAnimation(context, R.anim.loading_animation); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // loading布局视图 View layout = inflater.inflate(R.layout.comm_loading, null); // loading的圆圈... ImageView loadImage = (ImageView) layout .findViewById(R.id.loading_circle); // 添加旋转动画 loadImage.setAnimation(loadingAnimation); // 如果自定义了loading的文字 if (null != loadingText) { TextView loadingTextView = (TextView) layout .findViewById(R.id.loading_text); loadingTextView.setText(context.getString(loadingText)); } // 取消加载按钮 ImageButton loadingCancelImg = (ImageButton) layout .findViewById(R.id.loading_cancel); //外层layout View loadingCancelView = (View) layout .findViewById(R.id.loading_cancel_view); loadingCancelImg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { WSClient.cancel(context); ViewUtils.finishActivity(context); } }); loadingCancelView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { WSClient.cancel(context); ViewUtils.finishActivity(context); } }); // ViewUtils.addViewTouchAlpha(loadingCancelView, loadingCancelImg); loadingDialog = new Dialog(context, R.style.loading_dialog); // Window window = loadingDialog.getWindow(); // //设置显示动画 // window.setWindowAnimations(R.style.comm_dialog); // loadingDialog.setContentView(layout); // LayoutParams lay = loadingDialog.getWindow().getAttributes(); // setParams(context, lay); if (null != onDismissListener) { loadingDialog.setOnDismissListener(onDismissListener); } //防止loading时点击旁边消失了... loadingDialog.setCanceledOnTouchOutside(false); loadingDialog.show(); return loadingDialog; } /** * 显示没有取消按钮的loading框 * * @param context * 上下文对象 */ public static Dialog showWithoutCancel(final Context context, Integer loadingText) { loadingAnimation = AnimationUtils.loadAnimation(context, R.anim.loading_animation); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // loading布局视图 View layout = inflater.inflate(R.layout.comm_loading, null); // loading的圆圈... ImageView loadImage = (ImageView) layout .findViewById(R.id.loading_circle); // 添加旋转动画 loadImage.setAnimation(loadingAnimation); // 如果自定义了loading的文字 if (null != loadingText) { TextView loadingTextView = (TextView) layout .findViewById(R.id.loading_text); loadingTextView.setText(context.getString(loadingText)); } //隐藏分割线 View loadingSeparateLine = (View) layout .findViewById(R.id.loading_separate_line); loadingSeparateLine.setVisibility(View.GONE); // 隐藏取消加载按钮 View loadingCancelImg = (View) layout .findViewById(R.id.loading_cancel_view); loadingCancelImg.setVisibility(View.GONE); loadingDialog = new Dialog(context, R.style.loading_dialog); //不可取消 loadingDialog.setCancelable(false); loadingDialog.setContentView(layout); //防止loading时点击外围后消失... loadingDialog.setCanceledOnTouchOutside(false); loadingDialog.show(); return loadingDialog; } /** * 是否在显示... * @return */ public static boolean isShowing() { if(null == loadingDialog) { return false; } return loadingDialog.isShowing(); } /** * 隐藏loading框 */ public static void dismiss() { if (null != loadingDialog && loadingDialog.isShowing()) { loadingAnimation.cancel(); loadingDialog.dismiss(); } } }