Android获取屏幕宽度和高度

本文解决知乎进度条在不同屏幕尺寸下的适配问题,通过获取屏幕高宽的方法优化进度条初始位置显示。同时,探讨并实现沉浸式效果下进度条的正确显示,克服宽高计算的局限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在上一篇的仿知乎进度条中,因为在调用ondraw前getwidth方法返回的是0,所以我直接将width设为1080了,而且为了保证一开始的滑块位置的正确性,在初始化线程的时候加入了delay,这样让onDraw先调用,缺点就在于体验不好以及屏幕的适配问题,今天偶然看别人的源码时发现了可以获取屏幕高宽的方法,那么知乎进度条的问题就解决了。

    

	DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
		width = displayMetrics.widthPixels;
		height = displayMetrics.heightPixels;
		Log.i("---width", "width:"+width);
		Log.i("---height", "height:"+height);
有这样一个类DisplayMetrics,其中的widthPixels就是屏幕的宽,heightPixels就是屏幕的高,并且在屏幕旋转时宽度和高度会互换。


上面的图第一个是竖屏,第二个是横屏,在height上并不是显示的1920而是1776,说明计算的宽高不是整个屏幕而是app的内容宽高。

  

然后我们加上沉浸式的效果,但是发现宽高和上面的一样,结论就是沉浸式也无法变成1920*1080

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值