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,并且采用的是四舍五入原则。