上半部分
下半部分
....
private Dialog createDialog(Context context, int layoutId, Action1setClickAction) { View view = LayoutInflater.from(context).inflate(layoutId, null); ImageView icon = view.findViewById(R.id.dialog_icon); icon.setImageDrawable(context.getResources().getDrawable(drawableId)); TextView headTv = view.findViewById(R.id.dialog_head); headTv.setText(this.head); TextView bodyTv = view.findViewById(R.id.dialog_body); bodyTv.setText(this.body); final Dialog dialog = new Dialog(context); dialog.setContentView(view); if (dialog.getWindow() != null) { dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); //设置对话框背景透明 ,对于AlertDialog 就不管用了 } if(setClickAction != null) setClickAction.invoke(view); android.view.WindowManager.LayoutParams p = dialog.getWindow().getAttributes(); //获取对话框当前的参数值 p.width = context.getResources().getDimensionPixelSize(R.dimen.dailog_width); p.height = context.getResources().getDimensionPixelSize(R.dimen.dialog_height); dialog.setCanceledOnTouchOutside(true);// 设置点击屏幕Dialog不消失 dialog.getWindow().setAttributes(p); //设置生效 return dialog; }
通过设定dimens.xml的高宽来控制。
实现悬浮圆角dialog。而且是上下不同layout。



