001package com.gigya.android.sdk.utils; 002 003import android.app.Activity; 004import android.content.Context; 005import android.content.ContextWrapper; 006import android.content.res.Configuration; 007import android.util.DisplayMetrics; 008import android.util.Pair; 009 010public class UiUtils { 011 012 /** 013 * Convert dp unit to equivalent pixels, depending on device density. 014 */ 015 public static float dpToPixel(float dp, Context context) { 016 return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT); 017 } 018 019 /** 020 * Convert device specific pixels to density independent pixels. 021 */ 022 public static float pixelsToDp(float px, Context context) { 023 return px / ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT); 024 } 025 026 /** 027 * Get device screen size in pixels. 028 * 029 * @param context Activity context. 030 * @return A pair of width and height pixel dimensions. 031 */ 032 public static Pair<Integer, Integer> getScreenSize(Activity context) { 033 DisplayMetrics displayMetrics = new DisplayMetrics(); 034 context.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 035 return new Pair<>(displayMetrics.widthPixels, displayMetrics.heightPixels); 036 } 037 038 public static boolean isPortrait(Context context) { 039 final int orientation = context.getResources().getConfiguration().orientation; 040 return orientation == Configuration.ORIENTATION_PORTRAIT; 041 } 042 043 public static Activity findActivity(Context context) { 044 if (context == null) 045 return null; 046 else if (context instanceof Activity) 047 return (Activity) context; 048 else if (context instanceof ContextWrapper) 049 return findActivity(((ContextWrapper) context).getBaseContext()); 050 return null; 051 } 052}