android 获取屏幕分辨率

来源:互联网 发布:ubuntu exit 头文件 编辑:程序博客网 时间:2024/05/09 05:46


今天遇到一个问题,我做出来的效果和设计师给的标注总是差几个像素,有个差1个像素,有的差5个像素,调了好久,就是不知道为啥,后来我静下心来好好想了想,计算了一下我的各个高度,我发现问题的所在了:

     DisplayMetrics dm = new DisplayMetrics();        getWindowManager().getDefaultDisplay().getMetrics(dm);        int widthPixels = dm.widthPixels;        int heightPixels = dm.heightPixels;

我们用这种方式获取到的屏幕高度是包括: 状态栏(显示电池信息的那一栏)。而我们应用显示内容的话,这部分是不能显示内容的,但是我又算上了,所以总是差点,原因就在这里。


    Rect rect = new Rect();                Window win = TestStatusActivity.this.getWindow();                win.getDecorView().getWindowVisibleDisplayFrame(rect);                int statusBarHeight = rect.top;                int contentViewTop = win.findViewById(Window.ID_ANDROID_CONTENT).getTop();                int titleBarHeight = contentViewTop - statusBarHeight;                System.out.println(statusBarHeight + ", " + titleBarHeight);

用这种方式得到了状态栏的高度和标题栏的高度。








1 0
原创粉丝点击