使用AlterDialog时,如果要对Dialog自定义好看的背景,可能会遇见黑边去不掉的问题, 网上使用的 把边距去掉, 可以解决背景是方形的问题,如果背景是比较复杂的图形,黑边还是有一点, 解决方法,只能是模拟对话框展示的形式 做一个效果。
比较笨的方法 就是把界面根布局 改为FramLayout ,添加一层 对话框 布局,代码中控制隐藏/显示,呵呵,注意点击其他地方的时候要屏蔽事件,可以定义空的点击事件, 还要处理 返回键 菜单键等,有点麻烦 但简单;
还可以使用windowManager.addView(dialogView, wmParams); 方法,自定义Dialog类,源码中也是这么干的,不过 很麻烦 很麻烦,还且问题多多,还经常崩溃,
windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
wmParams = new WindowManager.LayoutParams();
// 设置图片格式,效果为背景透明
wmParams.format = PixelFormat.RGBA_8888;
// 在有touch事件的时候要将flags设置为FLAG_ALT_FOCUSABLE_IM,touch事件ACTION_UP之后,又要将其设置为FLAG_NOT_FOCUSABLE;
// wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
dialogView = LayoutInflater.from(context).inflate(R.layout.inner_dialog, null);
normalDialogView = LayoutInflater.from(context).inflate(R.layout.dialog_datamodify, null);
initViews();
llContent = (LinearLayout) dialogView.findViewById(R.id.ll_content);
最后,我老大牛逼的 修改了源码把黑边去掉了, 佩服得五体投递啊,好像把那个类拿过来,不过已经看不到了, 对于我这种才学习了Android半年多的新手 让我怎么看得懂源码呀, 哪位大神有好的方法 去掉黑边的吗?? 拜托告诉下我啦~