android 平板的action bar、status bar、navigation bar的高度
来源:互联网 发布:2015 库里对火箭 数据 编辑:程序博客网 时间:2024/04/28 16:52
之前开发时一直在用getWidth()、getHeight()方法取屏幕的分辨率,在平板上也这么在用。
后来发现在getHeight()取得的分辨率与 平板中的分辨率不一样。于是进行了一些实验。
平板的分辨率截图:
测试代码得到的log打印输出:
根据以上一些信息基本就可以得到几个bar的大致位置,草图如下:
这样就比较明显了 系统的分辨率 1024 = screentHeight+navigatiobar = 976+48;
也就是说 平时说的最多的screenHeight其实是包含3部分的 statusBar 、actionbar、以及中间的布局部分 layoutHeight
一些代码片段:
ScreenHeight:
<span style="white-space:pre"></span>//api13之前 WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth13 = display.getWidth(); screenHeight13 = display.getHeight(); Log.e("screenWidth13", screenWidth13+"");Log.e("screenHeight13", screenHeight13+"");//api13之后DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);screenWidth = dm.widthPixels;screenHeight = dm.heightPixels;Log.e("screenWidth", screenWidth+"");Log.e("screenHeight", screenHeight+"");
StatusBarHeight:
<span style="white-space:pre"></span>public int getStatusBarHeight() { int result = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = getResources().getDimensionPixelSize(resourceId); } return result;}ActionBarHeight
<span style="white-space:pre"></span>TypedValue tv = new TypedValue();if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)){ actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());}Log.e("actionBarHeight", actionBarHeight+"");navigationBarHeight:
<span style="white-space:pre"></span>public int getNavigationBarheight(){Resources resources = this.getResources();int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");if (resourceId > 0) { return resources.getDimensionPixelSize(resourceId);}return 0;}layoutHeight:
<span style="white-space:pre"></span>final LinearLayout lineLayout = (LinearLayout)this.findViewById(R.id.layout);ViewTreeObserver vto = lineLayout.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {@Overridepublic boolean onPreDraw() {int layoutWidth = lineLayout.getWidth();int layoutHeight = lineLayout.getHeight();Log.e("layoutWidth",layoutWidth+"");Log.e("layoutHeight",layoutHeight+"");return true;}});
详细内容见代码:代码链接
0 0
- android 平板的action bar、status bar、navigation bar的高度
- status bar 、action bar、navigation bar height
- Android 获取 Navigation bar 的高度
- 获取Navigation Bar 的高度
- 获取status bar的高度
- Android navigation bar and the status bar
- android 获取系统顶部状态栏(Status Bar)与底部导航栏( 获取底部浮动菜单 Navigation Bar)的高度
- 【android】隐藏title bar和system navigation bar,status bar
- System Bar (Status Bar Navigation Bar)
- Android的status bar分析
- Android的status bar分析
- Navigation bar 的注意事项
- Navigation bar 的注意事项
- status bar的兼容
- Android平台的Action Bar
- android action-bar的使用
- Android 实现Navigation Bar和Status Bar全透明
- 获取status bar 高度
- wpf下textbox绑定list<string>显示
- 数据清洗小记(12):姓与名的提取
- 使用volley踩到的一个坑
- 对于MyBatis的初解
- 修改Eclipse中web项目的访问路劲
- android 平板的action bar、status bar、navigation bar的高度
- 试用vSphere 6(四):配置数据中心(添加ESXi主机、新建数据中心\集群等)
- R语言基础指令和并行算法初识(上篇)
- edittext 自动跳转到下一个 返回上一个
- 一步步告诉你stm32开发环境搭建流程
- t.indexOf('e') != -1在java中怎么解释?
- shell脚本入门
- 芒果iOS开发之Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.
- c++builder调用vc的dll