您的位置:首页 > 移动开发 > Android开发

Android 获取屏幕信息

2015-06-04 14:38 423 查看
获取屏幕信息:状态栏高度、content大小

public void getScreenInfo(final Activity activity){
        final View v = activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
        v.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            @Override
            public boolean onPreDraw() {
                Rect frame = new Rect();
                activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
                int statusBarHeight = frame.top;
                v.getViewTreeObserver().removeOnPreDrawListener(this);
                Log.e("", "ScreenInfo===ContentVIew===Height:" + v.getHeight() + "  Width:" + v.getWidth() + " Top:" + v.getTop() + "  Left:" + v.getLeft()+"   Bottom:"+v.getBottom()+"   状态栏高度:"+statusBarHeight);

                return true;

            }
        });
    }


其他的一些工具类:获取屏幕大小、密度、横屏竖屏

private static int widthPixels = 0;
    private static int heightPixels = 0;
    private static float density = 0;

    public static DisplayMetrics getMetrics(Context context) {
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager(context).getDefaultDisplay().getMetrics(metrics);

        return metrics;
    }

    public static String getOrientation(Context context) {
        switch (getWindowManager(context).getDefaultDisplay().getRotation()) {
            case Surface.ROTATION_0:
                return "portrait";
            case Surface.ROTATION_90:
                return "landscape";
            case Surface.ROTATION_180:
                return "reverse portrait";
            default:
                return "reverse landscape";
        }
    }

    public static WindowManager getWindowManager(Context context) {
        return (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    }

    public static int getWidth(Context context) {
        if (widthPixels == 0) {
            widthPixels = getMetrics(context).widthPixels;
        }
        return widthPixels;
    }

    public static int getHeight(Context context) {
        if (heightPixels == 0) {
            ViewConfiguration.get(context).hasPermanentMenuKey();
            heightPixels = getMetrics(context).heightPixels;
        }
        return heightPixels;
    }

    public static float getDensity(Context context) {
        if (density == 0) {
            density = getMetrics(context).density;
        }
        return density;
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: