-3

I create android emulator with screen: screen size: 7.5 inches Resolution(width x height): 720x960 density: mdpi And in Android virtual device manager it is shown xlarge screen size but in following code it returns Large screen size.

int screenLayout = context.getResources().getConfiguration().screenLayout;
screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;

switch (screenLayout) {
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        return ScreenSize.SMALL;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        return ScreenSize.MEDIUM;
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        return ScreenSize.LARGE;
    case Configuration.SCREENLAYOUT_SIZE_XLARGE:
        return ScreenSize.XLARGE;
    default:
}
  • 3
    Possible duplicate of [How do I get the ScreenSize programmatically in android](http://stackoverflow.com/questions/11252067/how-do-i-get-the-screensize-programmatically-in-android) – Charuක Feb 15 '17 at 07:36
  • following Google document https://developer.android.com/guide/practices/screens_support.html xlarge screens are at least 960dp x 720dp. – nguyen nguyen Feb 15 '17 at 07:47
  • I don't want to get width or height I just want to determine screen size (Small, Normal, Large or xLarge) but I don't know why it return wrong screen size – nguyen nguyen Feb 15 '17 at 07:53
  • try with density --> http://stackoverflow.com/a/19557542/5188159 second part – Charuක Feb 15 '17 at 08:18
  • I already set mdpi density for android emulator. – nguyen nguyen Feb 15 '17 at 08:22

5 Answers5

1

You will be able to get screen Height and Width using:

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
Deep Patel
  • 2,584
  • 2
  • 15
  • 28
0

Use Below code to get Height and Width of Android Phone Screen .

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int height = displayMetrics.heightPixels;
int width= displayMetrics.widthPixels;
Chetan Joshi
  • 5,582
  • 4
  • 30
  • 43
0

getscreen Height and width use int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); get layout Height use int layoutHeight = Layout.getMeasuredHeight();

orangeai
  • 11
  • 3
0
public static int getScreenWidth() {
return Resources.getSystem().getDisplayMetrics().widthPixels;
}

public static int getScreenHeight() {
return Resources.getSystem().getDisplayMetrics().heightPixels;
}
aj0822ArpitJoshi
  • 1,142
  • 1
  • 9
  • 25
0

You can try this:

/**  
 * Get screen width  
 *  
 * @param context  
 * @return  screen width
 */  
public static int getScreenWidth(Context context)  
{  
    WindowManager wm = (WindowManager) context  
            .getSystemService(Context.WINDOW_SERVICE);  
    DisplayMetrics outMetrics = new DisplayMetrics();  
    wm.getDefaultDisplay().getMetrics(outMetrics);  
    return outMetrics.widthPixels;  
}  

/**  
 * Get screen height  
 *  
 * @param context  
 * @return  screen height
 */  
public static int getScreenHeight(Context context)  
{  
    WindowManager wm = (WindowManager) context  
            .getSystemService(Context.WINDOW_SERVICE);  
    DisplayMetrics outMetrics = new DisplayMetrics();  
    wm.getDefaultDisplay().getMetrics(outMetrics);  
    return outMetrics.heightPixels;  
}