获取android顶部状态栏高度的两种方式
2015-10-25 17:16
513 查看
android顶部状态栏 获取的两种方式
一般情况下我们通过调用下面方法即可获得状态栏的高度,同理也可以获得底部虚拟键盘的高度
/** * 获取状态栏高度 * * @return */ public int getStatusBarHeight() { // Rect rect = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); int statusBarHeight = rect.top; // 状态栏高度 int bottomHeight = rect.bottom;// 底部虚拟键盘的 Log.i("statusBarHeight=", "statusBarHeight=" + statusBarHeight + "---bottomHeight=" + bottomHeight); return statusBarHeight; }
通过反射的形式获取状态栏高度,在oncreate中调用依然可以获得正确的高度
但是该方法如果在oncreate中调用获得状态栏高度为0,这是由于当前页面还未生成,所以上述方法使用情景只能在当页面已经加载完毕OnResume,类似 当按钮响应点击事件时获取状态栏高度;如果在oncreate调用就需要使用另外一种方式,通过反射的形式获取状态栏高度,在oncreate中调用依然可以获得正确的高度/** * 获取状态栏高度 * * @return */ public int getStatusBarHeight() { Class<?> c = null; Object obj = null; Field field = null; int x = 0, 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 = getResources().getDimensionPixelSize(x); } catch (Exception e1) { e1.printStackTrace(); } return statusBarHeight; }
相关文章推荐
- android textview获取图片
- Android-ImageView显示选择本地图片或拍照
- android中TimePicker和DatePicker的简单使用
- Android第三方图片加载库Universal Image Loader
- Android Studio配置opencv
- Android 拨打电话、查询联系人
- 5.Android support design TabLayout
- Android中判断字符串中必须包含字母或者数字
- Android代码混淆
- Android直连SQLServer
- Android jni 编程4(对基本类型二维整型数组的操作)
- Android 抽屉菜单的实现
- Android TextView文字滚动
- android studio 1.3 导入 viewpagerIndicator
- android适配器及监听点击和滚动在ListView中的使用
- android应用界面主题Theme使用方法
- 使用IDA动态调试android so文件时的几个坑
- Android jni 编程3(对基本类型一维整型数组的操作)总结版
- Android 从相册和拍照选择图片
- android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法