在默认情况下,StatusBar的高度是25dip,这个值是不会变的,不管你的屏幕是240*320的还是600*800的或者还是其它分辨率的,StatusBar的高度都是25dip。
也许有的同学会说,怎么可能嘛,值600*800的设备上StatusBar的高度明显要高很多嘛!
不错,值600*800这样的设备上,StatusBar的高度看起来确实比240*320的屏幕上高很多,但是它的的确确也是25dip,只不过此时它并不是25px。
在240*320分辨率的设备上,25dip,在设备上显示的时候,它的长度或者说高度就是25个像素,也就是25px;但是在600*800的设备上,这25dip就不再是25px了。
下面来教大家如何取得在不同设备上的这个高度。其实非常简单:
DisplayMetrics metrics = getResources().getDisplayMetrics();
int STATUS_BAR_HEIGHT = (int) Math.ceil( 25 * metrics.density);
实际上,我们要做的就是把这个25dip的高度转换成px即可,因为我们在代码里需要的高度都是以px为单位的。
时间: 2024-12-28 12:26:42