假设我自定义了一个SurfaceView,实现了Runable接口,我想在这个View的基础上通过某种条件后显示一个AlertDialog,能用什么方式去显示这个Dialog啊?
是遇到了什么问题吗?按理说直接常规操作实例化,弹出就行。Dialog是在上层,不影响哈
new AlertDialog().settitle().setContent().setxxxLisener().show()
直接调用系统的dialog Api就可以。
public static Dialog createLoadingDialog(Context context, String msg) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.dialog_loading, null);// 得到加载view
LinearLayout layout = (LinearLayout) v
.findViewById(R.id.dialog_loading_view);// 加载布局
TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
tipTextView.setText(msg);// 设置加载信息
Dialog loadingDialog = new Dialog(context, R.style.MyDialogStyle);// 创建自定义样式dialog
loadingDialog.setCancelable(true); // 是否可以按“返回键”消失
loadingDialog.setCanceledOnTouchOutside(false); // 点击加载框以外的区域
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
/**
*将显示Dialog的方法封装在这里面
*/
Window window = loadingDialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setGravity(Gravity.CENTER);
window.setAttributes(lp);
//window.setWindowAnimations(R.style.PopWindowAnimStyle);
loadingDialog.show();
Log.i(TAG, "createLoadingDialog: ");
return loadingDialog;
}
/**
* 关闭dialog
*
* @param mDialogUtils
*/
public static void closeDialog(Dialog mDialogUtils) {
if (mDialogUtils != null && mDialogUtils.isShowing()) {
Log.i(TAG, "closeDialog: ");
mDialogUtils.dismiss();
}
}
你把弹框layout改成自己的就行了,其他的正常按你的逻辑调用