package com.thefinestartist.utils.ui; import android.graphics.Point; import android.util.TypedValue; import android.view.Display; import com.thefinestartist.enums.Rotation; import com.thefinestartist.utils.content.ResourcesUtil; import com.thefinestartist.utils.content.ThemeUtil; import com.thefinestartist.utils.content.TypedValueUtil; import com.thefinestartist.utils.etc.APILevel; import com.thefinestartist.utils.service.WindowManagerUtil; /** * DisplayUtil helps to calculate screen size conveniently. * * @author Leonardo Taehwan Kim */ public class DisplayUtil { public static int getWidth() { Display display = WindowManagerUtil.getDefaultDisplay(); if (APILevel.require(13)) { Point size = new Point(); display.getSize(size); return size.x; } else { return display.getWidth(); } } public static int getHeight() { Display display = WindowManagerUtil.getDefaultDisplay(); if (APILevel.require(13)) { Point size = new Point(); display.getSize(size); return size.y; } else { return display.getHeight(); } } public static Rotation getRotation() { if (APILevel.require(8)) return Rotation.fromValue(WindowManagerUtil.getDefaultDisplay().getRotation()); else return Rotation.fromValue(WindowManagerUtil.getDefaultDisplay().getOrientation()); } public static boolean isPortrait() { return getHeight() >= getWidth(); } public static boolean isLandscape() { return getHeight() < getWidth(); } public static int getStatusBarHeight() { int resourceId = ResourcesUtil.getIdentifier("status_bar_height", "dimen", "android"); return resourceId > 0 ? ResourcesUtil.getDimensionPixelSize(resourceId) : 0; } public static int getToolbarHeight() { return getActionBarHeight(); } public static int getActionBarHeight() { TypedValue tv = new TypedValue(); return ThemeUtil.resolveAttribute(android.R.attr.actionBarSize, tv, true) ? TypedValueUtil.complexToDimensionPixelSize(tv.data) : 0; } public static int getNavigationBarHeight() { int resourceId = ResourcesUtil.getIdentifier("navigation_bar_height", "dimen", "android"); return resourceId > 0 ? ResourcesUtil.getDimensionPixelSize(resourceId) : 0; } }