Android 获取屏幕的多种宽高信息的示例代码
作者:叶应是叶 时间:2021-07-10 06:07:10
本文主要介绍了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 获取屏幕的多种宽高信息
来源:http://www.jianshu.com/p/4531185e7e68
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
startJVM错误Unable to load native library: libjvm.so解决方法
Spring Boot 中密码加密的两种方法
![](https://img.aspxhome.com/file/2023/5/78895_0s.png)
解决C#获取鼠标相对当前窗口坐标的实现方法
SpringBoot项目修改访问端口和访问路径的方法
![](https://img.aspxhome.com/file/2023/5/108445_0s.png)
spring boot如何加入mail邮件支持
Java的二叉树排序以及遍历文件展示文本格式的文件树
浅谈几种常见语言的命名空间(Namespace)
Android远程服务编写和调用教程
mybatis-plus分页查询三种方法小结
![](https://img.aspxhome.com/file/2023/6/63446_0s.png)
java实现随机验证码图片生成
![](https://img.aspxhome.com/file/2023/1/82301_0s.jpg)
C#中GDI+绘制圆弧及圆角矩形等比缩放的绘制
![](https://img.aspxhome.com/file/2023/3/89823_0s.png)
全面解析JTA 深度历险
详解java倒计时三种简单实现方式
![](https://img.aspxhome.com/file/2023/8/62508_0s.png)
Eclipse代码格式化设置简单介绍
C#常见应用函数实例小结
springboot自定义stater启动流程
![](https://img.aspxhome.com/file/2023/5/65165_0s.png)
Java实现json数据处理的常用脚本分享
Java中关于Map四种取值方式
详解Java String字符串获取每一个字符及常用方法
![](https://img.aspxhome.com/file/2023/6/85486_0s.jpg)