方法一
复制代码代码如下:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
方法二
通过计算设备尺寸大小的方法来判断是手机还是平板:
复制代码代码如下:
/**
* 判断是否为平板
*
* @return
*/
private boolean isPad() {
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
// 屏幕宽度
float screenWidth = display.getWidth();
// 屏幕高度
float screenHeight = display.getHeight();
DisplayMetrics dm = new DisplayMetrics();
display.getMetrics(dm);
double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
// 屏幕尺寸
double screenInches = Math.sqrt(x + y);
// 大于6尺寸则为Pad
if (screenInches >= 6.0) {
return true;
}
return false;
}
由于现在市场上,大屏幕手机层出不穷,基本各个都是超过5.5寸屏幕。所以方法一,调用系统的Configuration.SCREENLAYOUT_SIZE_MASK 基本获取的都是大屏幕尺寸的类型。因为Android系统代码就只把系统屏幕分成了大、中、小三种。所以使用方法一判断不够严谨,建议使方法二。