Android 获取屏幕的多种宽高信息的示例代码
发布时间 - 2026-01-11 02:58:28 点击率:次本文主要介绍了Android 获取屏幕的多种宽高信息的示例代码,分享给大家,具体如下:

包含的宽高信息如下图所示:
在模拟器上获取到的数据:
08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920
08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080
08-26 07:19:34.211 7834-7834/com.czy.screeninfo E/MainActivity: getAvailableScreenHeight 1794
08-26 07:19:34.979 7834-7834/com.czy.screeninfo E/MainActivity: getStatusBarHeight 63
08-26 07:19:35.580 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeightIfRoom 126
08-26 07:19:36.340 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeight 126
08-26 07:19:37.048 7834-7834/com.czy.screeninfo E/MainActivity: getTitleHeight 147
具体的代码:
/**
* 作者: chenZY
* 时间: 2017/8/26 14:37
* 描述:
*/
public class ScreenUtils {
/**
* 返回包括虚拟键在内的总的屏幕高度
* 即使虚拟按键显示着,也会加上虚拟按键的高度
*/
public static int getTotalScreenHeight(Activity activity) {
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
return displayMetrics.heightPixels;
}
/**
* 返回屏幕的宽度
*/
public static int getScreenWidth(Activity activity) {
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
return displayMetrics.widthPixels;
}
/**
* 返回屏幕可用高度
* 当显示了虚拟按键时,会自动减去虚拟按键高度
*/
public static int getAvailableScreenHeight(Activity activity) {
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.heightPixels;
}
/**
* 状态栏高度
*/
public static int getStatusBarHeight(Activity activity) {
int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");
return activity.getResources().getDimensionPixelSize(resourceId);
}
/**
* 获取虚拟按键的高度
* 会根据当前是否有显示虚拟按键来返回相应的值
* 即如果隐藏了虚拟按键,则返回零
*/
public static int getVirtualBarHeightIfRoom(Activity activity) {
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int usableHeight = displayMetrics.heightPixels;
activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
int realHeight = displayMetrics.heightPixels;
return realHeight - usableHeight;
}
/**
* 获取虚拟按键的高度,不论虚拟按键是否显示都会返回其固定高度
*/
public static int getVirtualBarHeight(Activity activity) {
int resourceId = activity.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
return activity.getResources().getDimensionPixelSize(resourceId);
}
/**
* 标题栏高度,如果隐藏了标题栏则返回零
*/
public static int getTitleHeight(Activity activity) {
return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
}
/**
* 将dp值转换为px值
*/
public static int dp2px(Context context, float dpValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 将px值转换为dp值
*/
public static int px2dp(Context context, float pxValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
或者也可以从这里下载代码:Android 获取屏幕的多种宽高信息
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android获取屏幕宽度
# android
# 获取屏幕宽高
# 安卓获取屏幕宽度
# Android 四种获取屏幕宽度的方法总结
# android开发教程之textview内容超出屏幕宽度显示省略号
# 转换为
# 标题栏
# 也会
# 给大家
# 所示
# 这里下载
# 者也
# 大家多多
# 如下图
# 状态栏
# 器上
# getVirtualBarHeightIfRoom
# getAvailableScreenHeight
# getStatusBarHeight
# pre
# class
# java
# brush
# getVirtualBarHeight
# chenZY
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Linux系统运维自动化项目教程_Ansible批量管理实战
PHP正则匹配日期和时间(时间戳转换)的实例代码
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
香港服务器租用每月最低只需15元?
LinuxCD持续部署教程_自动发布与回滚机制
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
如何批量查询域名的建站时间记录?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何在橙子建站中快速调整背景颜色?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Laravel如何为API编写文档_Laravel API文档生成与维护方法
如何在IIS中新建站点并配置端口与IP地址?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何快速查询网址的建站时间与历史轨迹?
网站建设整体流程解析,建站其实很容易!
Laravel如何创建自定义Facades?(详细步骤)
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
怎么用AI帮你为初创公司进行市场定位分析?
太平洋网站制作公司,网络用语太平洋是什么意思?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel如何与Pusher实现实时通信?(WebSocket示例)
简历在线制作网站免费版,如何创建个人简历?
Linux后台任务运行方法_nohup与&使用技巧【技巧】
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
如何快速生成高效建站系统源代码?
微信小程序 wx.uploadFile无法上传解决办法
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
JS去除重复并统计数量的实现方法
微信h5制作网站有哪些,免费微信H5页面制作工具?
jQuery 常见小例汇总
PythonWeb开发入门教程_Flask快速构建Web应用
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何为API生成Swagger或OpenAPI文档
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
如何在阿里云部署织梦网站?
Python文件操作最佳实践_稳定性说明【指导】

