虽然获得屏幕宽高的方法有很多,设置dialog的大小方法可能也不止一种,但本人从网上试了几种设置大小的方法,发现有的达不到效果,下面就提供一种可以实现自定义改变dialog占屏幕百分比的方法,亲测可用,有需要的拿去
Window dialogWindow = <span style="font-family: Arial, Helvetica, sans-serif;">yourDialog</span>.getWindow();
WindowManager.LayoutParams lp = yourDialog.getAttributes();
int screenWidth = getActivity().getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽
int screenHeight = getActivity().getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高
lp.width = (int)(screenWidth * 0.8); // 宽度
lp.height = (int)(screenHeight * 0.8); // 高度
dialogWindow.setAttributes(lp);
yourDialog.show();
这种方法可已解决dialog内容太多,导致内容显示不全,把确定和取消的button挤出屏幕外边的问题,用上述方法,就能将dialog的大小控制在屏幕的80%左右,同时需要做的是将dialog内解析的布局用Scrollview嵌套起来,这样就能在这个固定的窗口内滑动里面的布局了。
唯一遗憾的是,假如原本你的dialog内容太多,把button,挤出屏幕之外,用这种方法虽然可以固定显示呈现dialog窗口的大小,但原来被挤掉的两个button并不会出现,这就需要你在解析的布局里添加两个自己的button,然后对外公布接口监听,当点击里面button的时候,处理跟外部一样的效果。如果还有别的能使button显示出来的方法,请在这里分享,帮助更多的猿友。