您的位置:首页 > 移动开发 > Android开发

Android 获取手机状态栏高度

2017-09-29 15:20 260 查看

Android 获取手机状态栏高度

在实际的开发过程中,有时候我们可能会需要知道状态栏的高度,虽然状态栏的高度基本上都是固定的,但是为了更加准确的得到状态栏的高度,我们可以通过代码实现,但是google并没有提供相应的API,那我们该怎么样获取了?下面我们一起来看看吧!

代码如下:

/**
* 获取手机状态栏的高度
*
* @return 状态栏的高度
*/
public static int getStatusBarHeight(Context context) {
Class<?> c;
Object obj;
Field field;
int x, statusBarHeight = 0;
try {
c = Class.forName("com.android.internal.R$dimen");
obj = c.newInstance();
field = c.getField("status_bar_height");
x = Integer.parseInt(field.get(obj).toString());
statusBarHeight = context.getResources().getDimensionPixelSize(x);
} catch (Exception e1) {
e1.printStackTrace();
}
return statusBarHeight;
}


从上面的代码可以看出,我们获取状态栏的高度是通过反射来实现的,通过反射获取出来的状态栏高度是dp,我们调用
getDimensionPixelSize
方法将dp转化为px,同时该方法会将float转化为int,并且采用的是四舍五入原则。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: