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


猜你喜欢
- AutoRestEvent 类用于从一个线程向另一个线程发送通知。微软文档是这样介绍的:表示线程同步事件在一个等待线程释放后收到信号时自动重
- 本文实例讲述了C#图像处理之图像平移的方法。分享给大家供大家参考。具体如下://定义图像平移函数private static Bitmap
- 试题描述:一个球场C的球迷看台可容纳M*N个球迷。官方想统计一共有多少球迷群体,最大的球迷群体有多少人。球迷选座特性:同球迷群体会选择相邻座
- 本文实例为大家分享了抢红包源码,供大家参考,具体内容如下1. 正确获取红包流程2. 软件介绍2.1 效果图:2.2 功能介绍2.2.1 账号
- 导入表格的主要思路就是:首先从前端页面上传文件,这里先区分一下Multipartfile和File,前者代表的是HTML中form data
- Qt文件操作类QFile简介Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基
- 引言异步蓝图节点:在蓝图节点的右上角有时钟图标。注意:异步节点可以在EventGraph/Macros中使用,但是无法在蓝图函数中使用。AI
- 概述ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是
- 线程池合理设置最大线程数和核心线程数工作中有这样一个场景,需要处理千万级别的数据的一个算法,大部分是增删查的操作。这个时候就需要使用多线程去
- Metro UI For JavaFX!这是一个Windows设计风格的UI库,使用非常简单,只要一行代码就可以实现整体UI风格的替换!ne
- 在Unity中,一般的方法都是顺序执行的,一般的方法也都是在一帧中执行完毕的,当我们所写的方法需要耗费一定时间时,便会出现帧率下降,画面卡顿
- 在 Android 系统中,一般使用 AudioRecord 或者 MediaRecord 来采集音频。AudioRecord 是一个比较偏
- GestureDetectorGestureDetector 是手势识别的组件,可以识别点击、双击、长按事件、拖动、缩放等手势点击事件点击相
- 目录 - JWT- JWT与其它的区别OAuthCookie/Session Auth- JWT的优点- 认证- JWT的缺点-
- 1. 父工程构建1.1 Maven项目搭建环境版本JDK1.8Maven3.6+Maven模板maven-archetype-size删除父
- C# 提供了以下类型的判断语句:语句描述if一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。if...else
- 反射反射定义对象可以通过反射获取他的类,类可以通过反射拿到所有⽅法(包括私有) 通过java语言中的反射机制可以操作字节码文件,可以读和修改
- 概述从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.算法的衡量标准当我们需要衡量一个算法的的优越性, 通常会
- 解决方法:maven的配置文件<mirror> <id>aliyunmaven</id> <mir
- JavaWeb登录界面登录失败在同一页面进行提示方法使用JSP 通过提交表单方式 判断账号密码是否正确 不正确则调用req.setAttri