You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
3.6 KiB
Java

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;
}
}
}