首页 > 代码库 > Android获取状态栏、标题栏、ActionBar以及屏幕的高度
Android获取状态栏、标题栏、ActionBar以及屏幕的高度
一、屏幕高度和宽度获取方法
int screenWidth,screenHeight; WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight();
另外一种
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels;
二、状态栏高度获取方法
Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;
上面这种方法基本上是可以的,但是下面这种方法更牛逼
private int getStatusBarHeight() { Class<?> c = null; Object obj = null; Field field = null; int x = 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()); return getResources().getDimensionPixelSize(x); } catch (Exception e1) { Log.d(TAG, "get status bar height fail"); e1.printStackTrace(); return 75; } }
三、获取标题栏的高度
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();//statusBarHeight是上面状态栏的高度int titleBarHeight = contentTop - statusBarHeight;
四、获取ActionBar高度
int actionBarHeight = getActionBar().getHeight();
注意 :如果是在Activity的onCreate函数中就开始使用,需要将其放入Runnable中调用,因为这个时候控件的高度可能还没有确定。
View root;。。。。root.post(new Runnable() { @Override public void run() { //To change body of implemented methods use File | Settings | File Templates. getActivityContentHeight(); } });
Android获取状态栏、标题栏、ActionBar以及屏幕的高度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。