1、第一种方法
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
val display = windowManager.defaultDisplay
val size = IntSize(display.width, display.height)
windowSize.value = size
Log.d("ttt","----${windowSize.value.width}--${windowSize.value.height}")
val currentWindowMetrics = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
windowManager.currentWindowMetrics
} else {
TODO("VERSION.SDK_INT < R")
}
val width = currentWindowMetrics.bounds.width()
val height = currentWindowMetrics.bounds.height()
Log.d("ttt","----$width--$height")
2、第二种方法(这个是返回的是DP格式的,第一种方法的是px格式)
val configuration = LocalConfiguration.current
val screenHeightDp = configuration.screenHeightDp
val screenWidthDp = configuration.screenWidthDp
3、第三种方法(可以在类class中使用)
//获取屏幕的宽度---以dp为结尾
fun Context.screenWidthDp(): Int {
val displayMetrics = resources.displayMetrics
return (displayMetrics.widthPixels / displayMetrics.density).toInt()
}
//获取屏幕的宽度---以dp为结尾
fun Context.screenHeightDp(): Int {
val displayMetrics = resources.displayMetrics
return (displayMetrics.heightPixels / displayMetrics.density).toInt()
}
//获取屏幕的宽度---以px为结尾
fun Context.screenWidthPx(): Int {
val displayMetrics = resources.displayMetrics
return displayMetrics.widthPixels
}
//获取屏幕的宽度---以px为结尾
fun Context.screenHeightPx(): Int {
val displayMetrics = resources.displayMetrics
return displayMetrics.heightPixels
}