Android如何获取屏幕、状态栏及标题栏的高度详解
时间:2022-07-28
本文章向大家介绍Android如何获取屏幕、状态栏及标题栏的高度详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
本文主要给大家介绍了关于Android获取屏幕、状态栏及标题栏高度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
在开始之前,先来看一张图:
- 绿色区域:屏幕区域
- 蓝色区域:状态栏区域
- 红色区域:标题栏区域
- 黄色区域: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());
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android开发之拖动条和评分组件用法分析
- Android使用AsyncQueryHandler实现获取手机联系人功能
- Android用过TextView实现跑马灯效果的示例
- android如何设置Activity背景色为透明色
- Android 手机防止休眠的两种实现方法
- Android编程实现的首页左右滑动切换功能示例
- 零基础学小程序004----小程序post请求,提交数据到服务器,小程序下单,小程序用户注册功能
- HorizontalScrollView水平滚动控件使用方法详解
- Android Activity生命周期和堆栈管理的详解
- Android学习之SharedPerference存储详解
- Android编程实现对话框Dialog背景透明功能示例
- Android开发中DatePicker日期与时间控件实例代码
- Android Shader应用开发之霓虹闪烁文字效果
- Android中ToggleButton开关状态按钮控件使用方法详解
- 零基础学小程序005---小程序登陆注册功能实现