永发信息网

android状态栏高度是多少

答案:2  悬赏:80  手机版
解决时间 2021-04-02 05:44
android状态栏高度是多少
最佳答案
Android中两种获取状态栏高度的方法
方法一:
private double getStatusBarHeight(Context context){  
double statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);  
return statusBarHeight;  
}  
这种方法很简单,只有一行代码:
状态栏高度=取大于其的最小整数(25*上下文_获取应用包的资源实例_获取当前屏幕尺寸_屏幕密度比例)
其中density并不是真实的屏幕密度,而是一个相对密度,基准密度为160dpi,比如我测试的手机为HTC one m8,查的屏幕密度为441dpi,相对160为2.75,density就取为3。各分辨率的density取值为:
ldpi (dpi=120,density=0.75)
mdpi (dpi=160,density=1)
hdpi (dpi=240,density=1.5)
xhdpi (dpi=320,density=2)
xxhdpi (dpi=480,density=3)
所以得到的状态栏高度为25*3=75
由这种方法得到的状态栏高度具有较大局限性,比如因为某种需要去掉状态栏或本身没有状态栏,此时状态栏高度应为0,但是该方法依然能够得到一个非零的状态栏高度。
方法二:
private int getStatusBarHeight(Context context) {  
int result = 0;  
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");  
if (resourceId > 0) {  
result = context.getResources().getDimensionPixelSize(resourceId);  
}  
return result;  
}  
这里我们用到了getIdentifier()的方法来获取资源的ID,其中第一个参数是要获取资源对象的名称,比如我们要获取状态栏的相关内容,这里填入"status_bar_height";第二个参数是我们要获取什么属性,我们要获取高度内容,所以填入"dimen";第三个是包名,状态栏是系统内容,故填入“android”。
另外一个用到的办法是getDimensionPixelSize(),由函数名就能知道是根据资源ID获得资源像素尺寸,这里就直接获得状态栏的高度。
这种方法在状态栏不存在的时候就会获得其高度为0.
全部回答
这个是可以自定义的,你的需求是什么,一般的是77dp
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
阅读材料,回答问题。我国某企业坚持走自主创
重做了系统origin游戏战地1怎么恢复38188
我的电动车是48v的,原来是4个12v20ah的电瓶
猫女的人物介绍
「星を追う子ども」讲的什么
iaipsel io信号怎么交互
我对关闭显示器时间、进入睡眠状态时间和屏幕
合同违约金比例一般是多少
嘉盛兴业保洁公司那个区注册
lol黑桃a伊泽瑞尔怎么样 黑桃aez什么时候出
晚晴风过竹,深夜月当花的意思
那些东西要消毒哪些要灭菌
吴原来的满族姓氏是什么?
请问李秋平的篮球培训班怎么样呢?求告知!急
一年级大学季宋妍霏为什么叫cc
推荐资讯
带1G显卡电源多少好一点
绿漪琴的简介和故事
美国哈佛大学有多少年历史了﹖
QQ车能贷款吗?
就是算卦说是欠关里债得烧纸,列个买纸钱的单
求法律人士帮忙
南北极的雪是否能直接食用?
战争狂人希特勒曾鼓吹日耳曼人是世界上的优等
java中装饰模式,装饰类和被装饰类要实现同一
《甘南大草原》读后感
迷迭香有什么用途?
淮之韵腊酒多少钱一瓶
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?