private int getStatusBarHeight(Context context){
try {
Class clazz=Class.forName("com.android.internal.R$dimen");
Object object=clazz.newInstance();
Field field=clazz.getField("status_bar_height");
//反射出该对象中status_bar_height字段所对应的在R文件的id值
//该id值由系统工具自动生成,文档描述如下:
//The desired resource identifier, as generated by the aapt tool.
int id = Integer.parseInt(field.get(object).toString());
//依据id值获取到状态栏的高度,单位为像素
return context.getResources().getDimensionPixelSize(id);
} catch (Exception e) {
// TODO: handle exception
}
return 0;
}获取到状态栏的高度
最新推荐文章于 2025-04-19 20:54:29 发布
本文介绍了一种通过Java反射机制获取Android设备状态栏高度的方法。该方法利用了系统的内部类和字段来找到状态栏高度对应的资源ID,并进一步通过上下文获取具体的像素值。
588

被折叠的 条评论
为什么被折叠?



