猿问
下载APP

如何使用代码确定设备屏幕大小类别(小,普通,大,xlarge)?

如何使用代码确定设备屏幕大小类别(小,普通,大,xlarge)?

有没有办法确定当前设备的屏幕尺寸类别,如小,普通,大,xlarge?

不是密度,而是屏幕尺寸。


慕雪6173905
浏览 49回答 3
3回答

哆啦的时光机

您可以使用Configuration.screenLayout位掩码。例:if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) ==          Configuration.SCREENLAYOUT_SIZE_LARGE) {     // on a large screen device ...     }

万千封印

private String getDeviceDensity() {     int density = mContext.getResources().getDisplayMetrics().densityDpi;     switch (density)     {         case DisplayMetrics.DENSITY_MEDIUM:             return "MDPI";         case DisplayMetrics.DENSITY_HIGH:             return "HDPI";         case DisplayMetrics.DENSITY_LOW:             return "LDPI";         case DisplayMetrics.DENSITY_XHIGH:             return "XHDPI";         case DisplayMetrics.DENSITY_TV:             return "TV";         case DisplayMetrics.DENSITY_XXHIGH:             return "XXHDPI";         case DisplayMetrics.DENSITY_XXXHIGH:             return "XXXHDPI";         default:             return "Unknown";     }}

叮当猫咪

  private fun determineScreenSize(): String {     // Thanks to https://stackoverflow.com/a/5016350/2563009.     val screenLayout = resources.configuration.screenLayout    return when {       screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK == Configuration.SCREENLAYOUT_SIZE_SMALL -> "Small"       screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK == Configuration.SCREENLAYOUT_SIZE_NORMAL -> "Normal"       screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK == Configuration.SCREENLAYOUT_SIZE_LARGE -> "Large"       screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK == Configuration.SCREENLAYOUT_SIZE_XLARGE -> "Xlarge"       screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK == Configuration.SCREENLAYOUT_SIZE_UNDEFINED -> "Undefined"       else -> error("Unknown screenLayout: $screenLayout")     }   }
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答