zoukankan      html  css  js  c++  java
  • Android 获得手机屏幕真实的宽高

    http://stackoverflow.com/questions/1016896/get-screen-dimensions-in-pixels

    WindowManager w = activity.getWindowManager();
    Display d = w.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    d.getMetrics(metrics);
    // since SDK_INT = 1;
    widthPixels = metrics.widthPixels;
    heightPixels = metrics.heightPixels;
    try {
        // used when 17 > SDK_INT >= 14; includes window decorations (statusbar bar/menu bar)
        widthPixels = (Integer) Display.class.getMethod("getRawWidth").invoke(d);
        heightPixels = (Integer) Display.class.getMethod("getRawHeight").invoke(d);
    } catch (Exception ignored) {
    }
    try {
        // used when SDK_INT >= 17; includes window decorations (statusbar bar/menu bar)
        Point realSize = new Point();
        Display.class.getMethod("getRealSize", Point.class).invoke(d, realSize);
        widthPixels = realSize.x;
        heightPixels = realSize.y;
    } catch (Exception ignored) {
    }
    

    EDIT: slightly improved version (avoid firing exceptions on non-supported OS version):

    WindowManager w = activity.getWindowManager();
    Display d = w.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    d.getMetrics(metrics);
    // since SDK_INT = 1;
    widthPixels = metrics.widthPixels;
    heightPixels = metrics.heightPixels;
    // includes window decorations (statusbar bar/menu bar)
    if (Build.VERSION.SDK_INT >= 14 && Build.VERSION.SDK_INT < 17)
    try {
        widthPixels = (Integer) Display.class.getMethod("getRawWidth").invoke(d);
        heightPixels = (Integer) Display.class.getMethod("getRawHeight").invoke(d);
    } catch (Exception ignored) {
    }
    // includes window decorations (statusbar bar/menu bar)
    if (Build.VERSION.SDK_INT >= 17)
    try {
        Point realSize = new Point();
        Display.class.getMethod("getRealSize", Point.class).invoke(d, realSize);
        widthPixels = realSize.x;
        heightPixels = realSize.y;
    } catch (Exception ignored) {
    }
  • 相关阅读:
    三:oracle练习
    二:SQL 函数
    一:SQL基本语法
    生产者与消费者模式(理解) 进程间通信之消息队列编程
    C语言
    前端面试:基础javascript篇(二)
    Koa入门和源码分析
    前端面试:基础javascript篇(一)
    前端面试题(二)
    C复习
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/4572122.html
Copyright © 2011-2022 走看看