开发问题记录(持续更新)

100 阅读1分钟

获取屏幕宽高

准确获取屏幕宽高方法

public static int[] getScreenSize(Context context) {
    int[] size = new int[2];
    WindowManager w = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display d = w.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    d.getMetrics(metrics);
    int widthPixels = metrics.widthPixels;
    int heightPixels = metrics.heightPixels;
    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 (Throwable ignored) {
        }
    size[0] = widthPixels;
    size[1] = heightPixels;
    return size;
}