package com.rehome.sbcksyy.weiget; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.text.TextUtils; import android.view.Display; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import android.widget.Toast; import com.rehome.sbcksyy.R; /** * Created by Rehome-rjb1 on 2017/5/17. * 加载框1 */ public class LoadDialog extends Dialog { private static LoadDialog loadDialog; private final boolean cancelable; private final String tipMsg; public LoadDialog(final Context ctx, boolean cancelable, String tipMsg) { super(ctx); this.cancelable = cancelable; this.tipMsg = tipMsg; this.getContext().setTheme(android.R.style.Theme_DeviceDefault_Dialog_NoActionBar_MinWidth); setContentView(R.layout.layout_dialog); // 必须放在加载布局后 setparams(); TextView tv = findViewById(R.id.tvLoad); if (!TextUtils.isEmpty(tipMsg)) { tv.setVisibility(View.VISIBLE); tv.setText(tipMsg); } } private void setparams() { this.setCancelable(cancelable); this.setCanceledOnTouchOutside(false); WindowManager windowManager = getWindow().getWindowManager(); Display display = windowManager.getDefaultDisplay(); WindowManager.LayoutParams lp = this.getWindow().getAttributes(); // Dialog宽度 lp.width = (int) (display.getWidth() * 0.7); Window window = getWindow(); window.setAttributes(lp); window.getDecorView().getBackground().setAlpha(0); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (!cancelable) { Toast.makeText(getContext(), tipMsg, Toast.LENGTH_SHORT).show(); return true; } } return super.onKeyDown(keyCode, event); } public static void show(Context context) { show(context, null, true); } public static void show(Context context, String message) { show(context, message, true); } public static void show(Context context, int resourceId) { show(context, context.getResources().getString(resourceId), true); } private static void show(Context context, String message, boolean cancelable) { if (context instanceof Activity) { if (((Activity) context).isFinishing()) { return; } } if (loadDialog != null && loadDialog.isShowing()) { return; } loadDialog = new LoadDialog(context, cancelable, message); loadDialog.show(); } public static void dismiss(Context context) { try { if (context instanceof Activity) { if (((Activity) context).isFinishing()) { loadDialog = null; return; } } if (loadDialog != null && loadDialog.isShowing()) { Context loadContext = loadDialog.getContext(); if (loadContext != null && loadContext instanceof Activity) { if (((Activity) loadContext).isFinishing()) { loadDialog = null; return; } } loadDialog.dismiss(); loadDialog = null; } } catch (Exception e) { e.printStackTrace(); loadDialog = null; } } }