在Android的实际开发中,会经常用到获取屏幕的尺寸的问题,以便设置一些布局在屏幕上的固定位置,从而适配各个屏幕的设备。

今天我就来讲一下怎么得到当前设备的屏幕像素吧:

一、在Activity中:

Display display = getWindowManager().getDefaultDisplay();//得到当前屏幕的显示器对象

Point size = new Point();//创建一个Point点对象用来接收屏幕尺寸信息

display.getSize(size);//Point点对象接收当前设备屏幕尺寸信息

int width = size.x;//从Point点对象中获取屏幕的宽度(单位像素)

int height = size.y;//从Point点对象中获取屏幕的高度(单位像素)

Log.v("zxy", "width="+width+",height="+height);//width=480,height=854可知手机的像素是480x854的

二、不在Activity中:

通过WINDOW_SERVICE对象获得默认的Display对象

WindowManager wm = (WindowManager) Context.getSystemService(Context.WINDOW_SERVICE);

Display display = wm.getDefaultDisplay();//然后获得屏幕像素就和第一个方法的一样了

三、如果没有getSize()方法,就通过getWidth()和getHeight()来获得,因为getSize()是新API引入的:

Display display = getWindowManager().getDefaultDisplay();

int width = display.getWidth(); // 获得宽度像素

int height = display.getHeight(); // 获得屏幕高度像素

上面这些代码,就是获得屏幕的尺寸信息的,然后可以通过所获取的宽度或高度去乘以一个百分比来设置一个控件的宽高,从而达到适配的作用。

当然还有一种方式获得屏幕的像素的,就是通过DisplayMetrics对象来获得,这个的意思就是获得一个界面度量对象,用来获得当前屏幕的高和宽,实现方式如下:

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);

int height = metrics.heightPixels;//获得屏幕高度

int width = metrics.widthPixels;//获得屏幕宽度

好了,获取屏幕的像素大小就说到这了,顺便补充一个常用的开发技术:

获取状态栏和标题栏的高度

废话不多说,直接贴代码吧:

Rect frame = new Rect();//创建一个空的矩形对象

getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);//获得顶层窗口的装饰视图,即状态栏,然后把状态栏显示的框架填充给刚刚我们创建的矩形对象,再通过矩形对象来获取状态栏高度

int statusBarHeight = frame.top;// 获取状态栏高度:frame.top

Log.v("zxy1", statusBarHeight+"");//打印出来的值为:38,即状态栏高度为38px

View v = getWindow().findViewById(Window.ID_ANDROID_CONTENT);// /获得根视图,

int allHeight = v.getTop();// 状态栏和标题栏的总高度

这样我们就获取了状态栏和状态栏加标题栏的总高度了,那么,显而易见,标题栏的高度就是用总高度减去状态栏的高度即可!!!【注】android屏幕都是以像素为单位的,进行相关计算或者设置宽高时注意转化单位,这里给出一个dp转px的方法:

public int Dp2Px(Context context, float dp) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dp * scale + 0.5f);

}

直接拿来用就行啦~~~

转载请注明出处---------

android 状态栏高度多少像素,Android之获取屏幕的尺寸像素及获取状态栏标题栏高度...相关推荐

  1. Android中获取屏幕物理尺寸的方法

    第一种方法 //获取屏幕宽度 int screenWidth = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)). ...

  2. wift - 使用UIScreen类获取屏幕大小尺寸

    UISreen类代表了屏幕,开发中一般用来获取屏幕相关的属性,例如获取屏幕的大小. 1 2 3 4 5 6 7 //获取屏幕大小 var screenBounds:CGRect = UIScreen. ...

  3. java 获取屏幕对角线尺寸,获得屏幕物理尺寸、密度及分辨率

    目录(?)[+] 大家帮忙喽! 博主参加2014博客之星活动,大家帮忙投票啦!猛击这里! 通过程序去了解硬件情况是一件十分有意思的事情.很早我就研究在 WM6.5上获得屏幕物理尺寸,但一直没有成功.后 ...

  4. php 获取远程图片尺寸,PHP高效获取远程图片尺寸和大小的实现方法

    原标题:PHP高效获取远程图片尺寸和大小的实现方法 PHP高效获取远程图片尺寸和大小的实现方法 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大 ...

  5. js获取屏幕、浏览器、页面的宽度和高度

    介绍 容器的尺寸是指当前分辨率下的高度和宽度(分辨率不同,值就不相同) 屏幕信息 screen.height:屏幕高度 screen.availHeight:屏幕可用宽度 screen.height ...

  6. php 获取屏幕的宽度,JS,Jquery获取各种屏幕的宽度和高度

    Javascript: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document ...

  7. php获取屏幕的宽高,JS获取屏幕宽高

    Javascript:网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document. ...

  8. Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键

    //获取屏幕尺寸,不包括虚拟功能高度 getWindowManager().getDefaultDisplay().getHeight(); 获取屏幕原始尺寸高度,包括虚拟功能键高度, private ...

  9. android获取键盘状态,Android获取屏幕方向及键盘状态的小例子

    Android获取屏幕方向及键盘状态的小例子 复制代码 代码如下: Configuration config = getResources().getConfiguration(); if (conf ...

  10. Android 获取屏幕大小以及尺寸

    在Android开发中,获取手机屏幕像素的方法有多种.在这里,我仅仅做一个小小的总结,将这些方法分为两类.一类是使用Activity类来获取,另一类便是使用上下文(Context)来获取. /*** ...

最新文章

  1. 实战|C++在vscode上的调试配置
  2. 【转】MongoDB C# / .NET Driver 中IMongoQuery的内部实现Query的用法
  3. 【随感】看老科和当当的回眸相视
  4. LeetCode Minimum Height Trees(拓扑排序)
  5. Win10 配置 TensorFlow-gpu 深度学系框架
  6. linuxpython重定向_linux命令重定向、、 1、 2、 1、 2、
  7. PHP入门04 -- 面向对象程序设计
  8. sql 中实现打乱数据的排序
  9. dnf如何快速拾取物品_DNF手游泰拉该如何获取,游戏蜂窝辅助托管快速获取泰拉...
  10. [Swift]LeetCode268. 缺失数字 | Missing Number
  11. kali linux 数据源,kali Linux msf5 连接数据库 No database support
  12. linux SO文件
  13. linux 平铺式桌面,Linux 桌面平铺管理器 - i3wm
  14. 读v_JULY_v整理笔试题博客有感,整理些答案。
  15. 利用8421码进行进制之间的转换
  16. 病毒木马查杀实战第024篇:MBR病毒之编程解析引导区
  17. 数据结构与算法--图的广度优先搜索 (BFS)
  18. html5 3d翻页,HTML5 3D书本翻页动画
  19. 自回归AR模型、移动平均MA模型与自回归移动平均ARMA模型的比较分析
  20. 深入理解计算机系统_第二章_信息的表示和处理

热门文章

  1. Linux 常见问题
  2. [日推荐] 『紫砂壶平台』一把紫砂,一种品味
  3. 打印ie浏览器去除页眉页脚问题
  4. CentOS7安装kangle和easypanel
  5. KVM之父的新作ScyllaDB:用C++开发的Cassandra兼容列数据库,性能提升10倍
  6. Maya模型导入到Unity3d 的秘诀
  7. 中华人民共和国消费者权益保护法
  8. uni-app--微信小程序自定义tabbar
  9. 基于JavaWeb聊天室设计与实现
  10. Hadoop指令-周美婷