如何获取StatusBar的高度(Android平台)

在默认情况下,StatusBar的高度是25dip,这个值是不会变的,不管你的屏幕是240*320的还是600*800的或者还是其它分辨率的,StatusBar的高度都是25dip。
也许有的同学会说,怎么可能嘛,值600*800的设备上StatusBar的高度明显要高很多嘛! 
不错,值600*800这样的设备上,StatusBar的高度看起来确实比240*320的屏幕上高很多,但是它的的确确也是25dip,只不过此时它并不是25px。

在240*320分辨率的设备上,25dip,在设备上显示的时候,它的长度或者说高度就是25个像素,也就是25px;但是在600*800的设备上,这25dip就不再是25px了。
下面来教大家如何取得在不同设备上的这个高度。其实非常简单:

DisplayMetrics metrics = getResources().getDisplayMetrics();
int STATUS_BAR_HEIGHT = (int) Math.ceil( 25 * metrics.density);

实际上,我们要做的就是把这个25dip的高度转换成px即可,因为我们在代码里需要的高度都是以px为单位的。

时间: 2024-12-28 12:26:42

如何获取StatusBar的高度(Android平台)的相关文章

基于ANDROID平台,U3D对蓝牙手柄键值的获取

对于ANDROID平台,物理蓝牙手柄已被封装,上层应用不可见,也就是说对于上层应用,不区分蓝牙手柄还是其它手柄: 完成蓝牙手柄和ANDROID手机的蓝牙连接后,即可以UNITY3D中获取其键值: 在U3D中已有对手柄键值的获取接口,主要分两类: 1.摇杆: translationy = Input.GetAxis("Vertical") * 10.0f; translationx = Input.GetAxis("Horizontal") * 10.0f; Inpu

Android开发 - 获取系统输入法高度的正确姿势

问题与解决 在Android应用的开发中,有一些需求需要我们获取到输入法的高度,但是官方的API并没有提供类似的方法,所以我们需要自己来实现. 查阅了网上很多资料,试过以后都不理想. 比如有的方法通过监听布局的变化来计算输入法的高度,这种方式在Activity的配置中配置为"android:windowSoftInputMode="adjustResize""时没有问题,可以正确获取输入法的高度,因为布局此时确实会动态的调整. 但是当Activity配置为"

android 获取屏幕款高度

       //获取屏幕的宽度  public static int getScreenWidth(Context context) {      WindowManager manager = (WindowManager) context              .getSystemService(Context.WINDOW_SERVICE);      Display display = manager.getDefaultDisplay();      return display

基于Android平台的i-jetty网站智能农业监控系统

基于android平台i-jetty网站的智能农业监控系统 摘要:传统的监控系统,一般是基于PC的有线通信传输,其有很多不足之处,如功耗较高.布线成本高.难度大,适应性差,可扩展性不强,增加新的通信线路需要再次布线施工,而且维护起来也比较麻烦,一旦线路出问题,需要繁琐的检查.而嵌入式Web监控系统是基于物联网技术,其无线通信技术具有成本低廉.适应性强.扩展性强.信息安全.使用维护简单等优点. 智能农业中,种植大棚是通过大棚内安装温湿度以及光照传感器,来对农作物的环境参数进行实时采集,由Web监控

Android平台GPS系统的应用开发

第一部分.前述: Android作为Google移动互联网战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现.Google的目标是让移动通信不依赖于设备,甚至是平台.出于这个目的,Android将完善而不是替代Google长期以来推行的移动发展战略:通过与全球各地的手机制造商和移动运营商成为合作伙伴,开发既实用又有吸引力的移动服务,并推广这些产品. 随着城市化的进展和家用轿车的普及.原本根遥远的全球卫星定位系统(Global Position System.6Ps)的

Android平台介绍

一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操作系统 Android.IOS.Windows Phone.BlackBerry.Symbian 什么是Android Android是一种基于Linux的开源操作系统,主要使用于移动设备,例如智能手机.平板电脑.智能手表.智能电视等等.由Google公司和开放手机联盟领导及开发.Android操作

Android平台jieahoa

一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操作系统 Android.IOS.Windows Phone.BlackBerry.Symbian 什么是Android Android是一种基于Linux的开源操作系统,主要使用于移动设备,例如智能手机.平板电脑.智能手表.智能电视等等.由Google公司和开放手机联盟领导及开发.Android操作

【媒体应用:Android平台Vitamio播放器探索之路系列】之二:Vitamio API:核心类

作者:郭嘉 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWells [媒体应用:Android平台Vitamio播放器探索之路系列]章节索引 [媒体应用:Android平台Vitamio播放器探索之路系列]之二:Vitamio API 注意:为了方便大家对照源码阅览,Vitamio API的介绍按照Vitamio源码程序包名来划分类别.如下图所示: 一 MediaPl

调研Android平台的开发环境的发展演变

一.发展演变 1.Android版本进化史 阿童木(Android beta)和发条机器人(Android1.0)->Cupcake(Android1.5)->Dount(Android1.6)->Eclair(Android2.0/2.1)->Froyo(Android2.2/2.2.1)->Gingerbread(Android2.3.x)->Honeycomb(Android3.0/3.1/3.2)->Ice Cream Sandwich(Android4.