window对象下获取的屏幕宽高

1.浏览器的内部窗口宽度(兼容写法):window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth                                                      浏览器的内部窗口高度(兼容写法):window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight

2.屏幕的可用(可工作)宽度:window.screen.availWidth                                                                                                                                                                            屏幕的可用(可工作)高度:window.screen.availHeight

3.网页可见区域宽度:document.body.offsetWidth(包括边线的宽)                                                                                                                                                            网页可见区域高度:document.body.offsetHeight(包括边线的高)

4.网页正文全文宽:document.body.scrollWidth                                                                                                                                                                                              网页正文全文高:document.body.scrollHeight

5.网页被卷去的高:document.body.scrollTop                                                                                                                                                                                                网页被卷去的左: document.body.scrollLeft

6.网页正文部分上: window.screenTop
   网页正文部分左: window.screenLeft

7.屏幕分辨率的高: window.screen.height
   屏幕分辨率的宽: window.screen.width


### Kotlin中获取屏幕度和度的代码实现 在Kotlin中,可以通过`DisplayMetrics`类来获取屏幕度和度。以下是一个完整的代码示例,展示如何在Android应用中使用Kotlin获取屏幕: ```kotlin import android.content.Context import android.util.DisplayMetrics import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val displayMetrics = DisplayMetrics() windowManager.defaultDisplay.getMetrics(displayMetrics) val screenWidth = displayMetrics.widthPixels val screenHeight = displayMetrics.heightPixels println("Screen Width: $screenWidth pixels") println("Screen Height: $screenHeight pixels") } } ``` 上述代码通过`DisplayMetrics`对象获取屏幕的像素度和度[^5]。其中,`widthPixels`表示屏幕度(以像素为单位),而`heightPixels`表示屏幕度(以像素为单位)。 如果需要更精确地处理视图的尺寸问题,可以结合`ViewTreeObserver`进行动态测量[^2]。例如,在某些场景下,直接访问`View`的`.width`或`.height`可能返回`0`,这是因为视图尚未完成绘制。此时,`ViewTreeObserver`提供了一个可靠的解决方案。 ### 注意事项 - 在使用`DisplayMetrics`时,请确保从正确的上下文中获取`WindowManager`实例。 - 如果目标设备运行的是Android R(API 30)及以上版本,建议使用`WindowMetrics`替代`DisplayMetrics`,因为`WindowMetrics`能够更好地支持多窗口模式[^6]。 ```kotlin import android.window.WindowMetrics import android.window.WindowMetricsCalculator val windowMetrics = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(this) val bounds = windowMetrics.bounds val screenWidth = bounds.width() val screenHeight = bounds.height() println("Screen Width (WindowMetrics): $screenWidth pixels") println("Screen Height (WindowMetrics): $screenHeight pixels") ``` 上述代码展示了如何在Android R及以上版本中使用`WindowMetrics`获取屏幕尺寸。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值