Android获取屏幕大小为什么会自动减去状态栏高度

本文解答了在Android中获取屏幕高度时为何默认减去状态栏高度的问题,并提供了获取屏幕真正高度的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求教,获取屏幕大小的问题,为什么获取屏幕的高度的时候,会自动把状态栏的高度减去?(例如:1280800的获得出来的会是1280752,把状态栏的高度给自动减了)我现在想获得是屏幕的真正高度,请问要怎么做?
我获取的代码:


     
  1. WindowManager wm = (WindowManager) this 
  2.                 .getSystemService(Context.WINDOW_SERVICE); 
  3.         PingWidth = wm.getDefaultDisplay().getWidth(); 
  4.         PingHeight = wm.getDefaultDisplay().getHeight();
该问题被发起关闭投票

投票剩余时间: 参与关闭投票 (/3)

该问题被发起重新开启投票

投票剩余时间: 参与重新开启投票 (/3)

之前被关闭原因:
该问题被发起删除投票

投票剩余时间: 参与删除投票 (/3)

发起了声誉值为 分的悬赏
距离悬赏到期还有:
该问题已经在很久很久以前被关闭

参与关闭投票者:

关闭原因:

该问题如果有必要重新开启? 请发起开启投票
该问题已经被锁定

锁定原因:()

该问题已被保护

保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。

该问题已成功删除,仅对您可见,其他人不能够查看。 取消删除问题
评论 (0)链接 • 2012-08-16 

您的投票让 随风游魂 声誉值增加了10分。

支持投票,不仅能让回答用户获得声誉值,让好答案排序靠前,更能帮助社区筛选出好的内容,构建高质量的知识库。


       
  1. public int getDisplayScreenHeight() 
  2.     { 
  3.         int screenHeight = 0; 
  4.          
  5.         DisplayMetrics metrics = new DisplayMetrics(); 
  6.         Display display = getWindowManager().getDefaultDisplay(); 
  7.         display.getMetrics(metrics); 
  8.          
  9.         int ver = Build.VERSION.SDK_INT; 
  10.         if (ver < 13) 
  11.         { 
  12.             screenHeight = metrics.heightPixels; 
  13.         } 
  14.         else if (ver == 13) 
  15.         { 
  16.             try { 
  17.                 Method method = display.getClass().getMethod("getRealHeight"); 
  18.                 screenHeight = (Integer) method.invoke(display); 
  19.             } catch (Exception e) { 
  20.                 e.printStackTrace(); 
  21.             }  
  22.         } 
  23.         else if (ver > 13) 
  24.         { 
  25.             try { 
  26.                 Method method = display.getClass().getMethod("getRawHeight"); 
  27.                 screenHeight = (Integer) method.invoke(display); 
  28.             } catch (Exception e) { 
  29.                 e.printStackTrace(); 
  30.             } 
  31.         } 
  32.          
  33.         return screenHeight; 
  34.     }
琴弦欲奏
琴弦欲奏
505
编辑于 2012-08-17
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (1)链接 • 2012-08-16
  • 0 支持
    管用,明天给你最佳答案哈 –  琴弦欲奏 2012-08-16

您的投票让 李剑波 声誉值增加了10分。

支持投票,不仅能让回答用户获得声誉值,让好答案排序靠前,更能帮助社区筛选出好的内容,构建高质量的知识库。

在4.0下可以获取

   

       
  1. mWindowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);   
  2.  mDisplay = mWindowManager.getDefaultDisplay();   
  3.  mDisplayMetrics = new DisplayMetrics();   
  4.  mDisplay.getRealMetrics(mDisplayMetrics);  
  5.  DebugLog.d("Activity_SizeActivity", "width = " + mDisplayMetrics.widthPixels); 
  6.  DebugLog.d("Activity_SizeActivity", "height = " + mDisplayMetrics.heightPixels);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值