Android怎样获取屏幕、状态栏及标题栏的高度-创新互联
这篇文章主要介绍了Android怎样获取屏幕、状态栏及标题栏的高度,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站设计、网站制作、网站维护、多线BGP机房解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、商城网站定制开发、政府网站等各类型客户群体,为全球上1000+企业提供全方位网站维护、服务器维护解决方案。在开始之前,先来看一张图:
绿色区域:屏幕区域
蓝色区域:状态栏区域
红色区域:标题栏区域
黄色区域:view绘制区域
1.Android手机屏幕的高度
整个手机使用发亮,不使用变黑的部分,绿色区域
获取屏幕的高度方法一
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); Log.e("TAG", "屏幕高:" + dm.heightPixels);
获取屏幕的高度方法二
DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); Log.e("TAG","screenHeight"+displayMetrics.heightPixels);
2.Android手机状态栏的高度(蓝色区域)
状态栏指的是,手机最上方显示,系统时间,电量等等区域。
获取状态栏高度方法一
int statusBarHeight1 = -1; //获取status_bar_height资源的ID int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { //根据资源ID获取响应的尺寸值 statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); } Log.e("TAG", "方法1:" + statusBarHeight1);
获取状态栏高度方法二
int statusBarHeight1 = -1; //获取status_bar_height资源的ID int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { //根据资源ID获取响应的尺寸值 statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); } Log.e("TAG", "方法1:" + statusBarHeight1);
获取状态栏高度方法二
int statusBarHeight2 = -1; try { Class> clazz = Class.forName("com.android.internal.R$dimen"); Object object = clazz.newInstance(); int height = Integer.parseInt(clazz.getField("status_bar_height") .get(object).toString()); statusBarHeight2 = getResources().getDimensionPixelSize(height); } catch (Exception e) { e.printStackTrace(); } Log.e("TAG", "方法2:" + statusBarHeight2);
获取状态栏高度方法三:
状态栏高度 = 屏幕高度 - 应用区高度
//屏幕 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); //应用区域 Rect outRect1 = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect1); int statusBar = dm.heightPixels - outRect1.height(); //状态栏高度=屏幕高度-应用区域高度 Log.e("WangJ", "方法3:" + statusBar);
3.Android手机应用区域(红+黄区域)
手机应用区域=标题栏+View绘制区域(setcontent()中设置的布局)
获取手机以应用区域
//应用区域 Rect outRect1 = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect1); Log.e("TAG", "应用区高" + outRect1.height());
4.Android手机标题高度(红色区域)
int viewTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); Log.e("TAG", "标题栏:" + viewTop);
5.Android手机绘制区域高度(黄色区域)
Rect outRect2 = new Rect(); getWindow().findViewById(Window.ID_ANDROID_CONTENT).getDrawingRect(outRect2); Log.e("TAG", "View绘制区域高度:" + outRect2.height());
感谢你能够认真阅读完这篇文章,希望小编分享的“Android怎样获取屏幕、状态栏及标题栏的高度”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
文章名称:Android怎样获取屏幕、状态栏及标题栏的高度-创新互联
文章地址:http://hbruida.cn/article/dpgipo.html