我首先inflate一个linearlayout,作为我的窗体内容,然后用windowmanager在屏幕上显示出来,正确显示如下
如果我关闭窗口,并没关闭app,再切换屏幕方向,重新打开窗口,结果就变成了这样。
以下是部分代码,请高手指教。
linearlayout类的部分设置:
windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
LayoutInflater.from(context).inflate(R.layout.float_window_datiinfo, this);
view = findViewById(R.id.datiinfo_window_layout);
DisplayMetrics dm = new DisplayMetrics();
windowManager.getDefaultDisplay().getMetrics(dm);
viewWidth = dm.widthPixels*9/10;//宽度
viewHeight = dm.heightPixels*9/10 ;//高度
加载窗口方法的部分代码:
datiinfoWindowParams.gravity = Gravity.LEFT | Gravity.TOP;
datiinfoWindowParams.width = FloatWindowDatiInfo.viewWidth;
datiinfoWindowParams.height = FloatWindowDatiInfo.viewHeight;
Log.e("window",datiinfoWindowParams.width+""+datiinfoWindowParams.height);
datiinfoWindowParams.x = screenWidth*3/5;
datiinfoWindowParams.y = screenHeight*3/5;
}
datiinfoWindow.setParams(datiinfoWindowParams);
windowManager.addView(datiinfoWindow, datiinfoWindowParams);