|
|
|
@ -229,10 +229,106 @@ public enum AppDialog { |
|
|
|
|
*/ |
|
|
|
|
public void showDialog(Context context, View contentView, @StyleRes int resId, float widthRatio,final boolean isCancel){ |
|
|
|
|
dismissDialog(); |
|
|
|
|
mDialog = new Dialog(context,resId); |
|
|
|
|
mDialog.setContentView(contentView); |
|
|
|
|
mDialog.setCanceledOnTouchOutside(false); |
|
|
|
|
mDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { |
|
|
|
|
mDialog = createDialog(context,contentView,resId,widthRatio,isCancel); |
|
|
|
|
mDialog.show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 设置弹框窗口配置 |
|
|
|
|
* @param context |
|
|
|
|
* @param dialog |
|
|
|
|
* @param widthRatio |
|
|
|
|
*/ |
|
|
|
|
private void setDialogWindow(Context context,Dialog dialog,float widthRatio){ |
|
|
|
|
Window window = dialog.getWindow(); |
|
|
|
|
WindowManager.LayoutParams lp = window.getAttributes(); |
|
|
|
|
lp.width = (int)(context.getResources().getDisplayMetrics().widthPixels * widthRatio); |
|
|
|
|
window.setAttributes(lp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param config 弹框配置 {@link AppDialogConfig} |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context,AppDialogConfig config){ |
|
|
|
|
return createDialog(context,config,true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param config 弹框配置 {@link AppDialogConfig} |
|
|
|
|
* @param isCancel 是否可取消(默认为true,false则拦截back键) |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context,AppDialogConfig config,boolean isCancel){ |
|
|
|
|
return createDialog(context,createAppDialogView(context,config),R.style.app_dialog,DEFAULT_WIDTH_RATIO,isCancel); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param contentView 弹框内容视图 |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context,View contentView){ |
|
|
|
|
return createDialog(context,contentView,DEFAULT_WIDTH_RATIO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param contentView 弹框内容视图 |
|
|
|
|
* @param isCancel 是否可取消(默认为true,false则拦截back键) |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context,View contentView,boolean isCancel){ |
|
|
|
|
return createDialog(context,contentView,R.style.app_dialog,DEFAULT_WIDTH_RATIO,isCancel); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param contentView 弹框内容视图 |
|
|
|
|
* @param widthRatio 宽度比例,根据屏幕宽度计算得来 |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context,View contentView,float widthRatio){ |
|
|
|
|
return createDialog(context,contentView,widthRatio,true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param contentView 弹框内容视图 |
|
|
|
|
* @param widthRatio 宽度比例,根据屏幕宽度计算得来 |
|
|
|
|
* @param isCancel 是否可取消(默认为true,false则拦截back键) |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context,View contentView,float widthRatio,boolean isCancel){ |
|
|
|
|
return createDialog(context,contentView,R.style.app_dialog,widthRatio,isCancel); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param contentView 弹框内容视图 |
|
|
|
|
* @param resId Dialog样式 |
|
|
|
|
* @param widthRatio 宽度比例,根据屏幕宽度计算得来 |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context, View contentView, @StyleRes int resId, float widthRatio){ |
|
|
|
|
return createDialog(context,contentView,resId,widthRatio,true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 创建弹框 |
|
|
|
|
* @param context |
|
|
|
|
* @param contentView 弹框内容视图 |
|
|
|
|
* @param resId Dialog样式 |
|
|
|
|
* @param widthRatio 宽度比例,根据屏幕宽度计算得来 |
|
|
|
|
* @param isCancel 是否可取消(默认为true,false则拦截back键) |
|
|
|
|
*/ |
|
|
|
|
public Dialog createDialog(Context context, View contentView, @StyleRes int resId, float widthRatio,final boolean isCancel){ |
|
|
|
|
Dialog dialog = new Dialog(context,resId); |
|
|
|
|
dialog.setContentView(contentView); |
|
|
|
|
dialog.setCanceledOnTouchOutside(false); |
|
|
|
|
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { |
|
|
|
|
@Override |
|
|
|
|
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { |
|
|
|
|
if(keyCode == KeyEvent.KEYCODE_BACK){ |
|
|
|
@ -245,23 +341,21 @@ public enum AppDialog { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
setDialogWindow(context,mDialog,widthRatio); |
|
|
|
|
mDialog.show(); |
|
|
|
|
setDialogWindow(context,dialog,widthRatio); |
|
|
|
|
return dialog; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setDialogWindow(Context context,Dialog dialog,float widthRatio){ |
|
|
|
|
Window window = dialog.getWindow(); |
|
|
|
|
WindowManager.LayoutParams lp = window.getAttributes(); |
|
|
|
|
lp.width = (int)(context.getResources().getDisplayMetrics().widthPixels * widthRatio); |
|
|
|
|
window.setAttributes(lp); |
|
|
|
|
public Dialog getDialog(){ |
|
|
|
|
return mDialog; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void dismissDialog(){ |
|
|
|
|
dismissDialog(mDialog); |
|
|
|
|
mDialog = null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void dismissDialog(Dialog dialog){ |
|
|
|
|
if(dialog!=null){ |
|
|
|
|
public void dismissDialog(Dialog dialog){ |
|
|
|
|
if(dialog != null){ |
|
|
|
|
dialog.dismiss(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|