【1】compose中获取窗口尺寸,宽度高度

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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值