Skip to content

Instantly share code, notes, and snippets.

@alexmprog
Created May 11, 2016 09:52
Show Gist options
  • Select an option

  • Save alexmprog/0262062aa6604f38e74f43678c830880 to your computer and use it in GitHub Desktop.

Select an option

Save alexmprog/0262062aa6604f38e74f43678c830880 to your computer and use it in GitHub Desktop.
DisplayUtils - simple class, which contains methods for calculating screen dimensions
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Point;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import your.packagename.R;
public class DisplayUtils {
public static float convertDpToPixel(float dp, @NonNull Context context) {
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
return dp * (metrics.densityDpi / 160.f);
}
public static float convertPixelsToDp(float px, @NonNull Context context) {
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
return px / (metrics.densityDpi / 160.f);
}
public static Point getWindowSize(@NonNull Context context) {
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display defaultDisplay = windowManager.getDefaultDisplay();
final Point size = new Point();
defaultDisplay.getSize(size);
return size;
}
public static Rect getViewRect(View view) {
final Rect viewRect = new Rect();
view.getGlobalVisibleRect(viewRect);
return viewRect;
}
public static int getActionBarHeight(@NonNull Context context) {
TypedArray styledAttributes = context.getTheme().obtainStyledAttributes(
new int[]{R.attr.actionBarSize});
int actionBarSize = styledAttributes.getDimensionPixelSize(0, 0);
styledAttributes.recycle();
return actionBarSize;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment