现在的位置: 首页 > 综合 > 正文

android 获取屏幕分辨率

2014年10月28日 ⁄ 综合 ⁄ 共 674字 ⁄ 字号 评论关闭

今天遇到一个问题,我做出来的效果和设计师给的标注总是差几个像素,有个差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);

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

抱歉!评论已关闭.