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
129 lines
3.6 KiB
Java
|
2 years ago
|
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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|