Android 状态栏、标题栏、屏幕高度

2023-11-05

http://xqjay19910131-yahoo-cn.iteye.com/blog/1435249

android 状态栏、标题栏、屏幕高度

 
1.获取状态栏高度: 

decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 
于是,我们就可以算出状态栏的高度了。 

Java代码   收藏代码
  1. Rect frame = new Rect();  
  2. getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
  3. int statusBarHeight = frame.top;  


2.获取标题栏高度: 

getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。 

Java代码   收藏代码
  1. int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  
  2. //statusBarHeight是上面所求的状态栏的高度  
  3. int titleBarHeight = contentTop - statusBarHeight  


3.获取屏幕高度 
   方法 1. 
 
Java代码   收藏代码
  1. WindowManager windowManager = getWindowManager();  
  2.   
  3. Display display = windowManager.getDefaultDisplay();  
  4.   
  5. screenWidth = display.getWidth();  
  6.   
  7. screenHeight = display.getHeight();  



   方法 2. 
  
Java代码   收藏代码
  1. DisplayMetrics dm = new DisplayMetrics();  
  2.   
  3. this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity  
  4.   
  5. screenWidth =dm.widthPixels;  
  6.   
  7. screenHeight =dm.heightPixels;  


以上两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效。
 


设置为无标题 
Java代码  
Java代码   收藏代码
  1. requestWindowFeature(Window.FEATURE_NO_TITLE);    



设置为全屏模式getWindow().setFlags 
Java代码  
Java代码   收藏代码
  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);    



设置为横屏 
Java代码  
Java代码   收藏代码
  1. setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);   



//--------------------------------------------------------------- 


在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改! 
一、在代码中设置: 
Java代码   收藏代码
  1. view plaincopy to clipboardprint?  
  2.  package com.android.tutor;    
  3.  import android.app.Activity;    
  4.  import android.os.Bundle;    
  5.  import android.view.Window;    
  6.  import android.view.WindowManager;    
  7.  public class OpenGl_Lesson1 extends Activity {    
  8.      public void onCreate(Bundle savedInstanceState) {    
  9.          super.onCreate(savedInstanceState);    
  10.         //去除title      
  11.        requestWindowFeature(Window.FEATURE_NO_TITLE);      
  12.         //去掉Activity上面的状态栏  
  13.         getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,        
  14.                        WindowManager.LayoutParams. FLAG_FULLSCREEN);     
  15.               
  16.          setContentView(R.layout.main);    
  17.      }    
  18.  }   

在这里要强调一点,设置全屏的俩段代码必须在setContentView(R.layout.main) 之前,不然会报错。 

二、在配置文件里修改 
(关键代码:
Java代码   收藏代码
  1. android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
如果想只是去除标题栏就后面不用加Fullscreen了,另外,如果想要整个应用都去除标题栏和状态栏,就把这句代码加到<application。。标签里面,如果只是想某个activity起作用,这句代码就加到相应的activity上): 

Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>    
  2.  <manifest xmlns:android="http://schemas.android.com/apk/res/android"    
  3.        package="com.android.tutor"    
  4.        android:versionCode="1"    
  5.        android:versionName="1.0">    
  6.      <application android:icon="@drawable/icon" android:label="@string/app_name">    
  7.          <activity android:name=".OpenGl_Lesson1"    
  8.                    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"    
  9.                    android:label="@string/app_name">    
  10.              <intent-filter>    
  11.                  <action android:name="android.intent.action.MAIN" />    
  12.                  <category android:name="android.intent.category.LAUNCHER" />    
  13.              </intent-filter>    
  14.          </activity>    
  15.      </application>    
  16.      <uses-sdk android:minSdkVersion="7" />    
  17.  </manifest>     
在这里我还想说明一下,用前者在我们应用运行后,会看到短暂的状态栏,然后才全屏,而第二种方法是不会有这种情况的,所以我建议大家使用后者! 谢谢~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 状态栏、标题栏、屏幕高度 的相关文章

  • 自动标注软件AnyLabeling安装及使用教程

    自动标注软件AnyLabeling AnyLabeling自动标注软件介绍 AnyLabeling标注软件安装 anylabeling标注软件使用 AnyLabeling自动标注软件介绍 该工具作为一个具有Segment Anything和
  • JavaScript高级

    文章目录 今日内容 一 DOM简单学习 为了满足案例要求 1 功能 二 事件简单学习 三 BOM 1 概念 Browser Object Model 浏览器对象模型 2 组成 3 Window 窗口对象 案例2 轮播图 4 Location
  • c# - A study on the NativeWindow - encapsulate window handle and procedure

    NativeWindow gives you a way to way to intercept the window messages are you familiar with the Windows Message Pump Aslo
  • 【yolov7系列三】实战从0构建训练自己的数据集

    大家好 我是张大刀 上文中提到了yolov7的正负样本匹配策略 这里主要从0开始训练自己的数据集 如果大家需文中ppt使用 请关注公众号后台添加微信 领取 备注 ppt 首先大刀是在windows电脑端完成数据集的标注 linux ubun
  • 在 FPGA 上如何实现双线性插值的计算?

    作者 殷庆瑜 责编 胡巍巍 目录 一 概述 二 What 什么是双线性插值 二 Why 为什么需要双线性插值 三 How 怎么实现双线性插值 关键点1 像素点选择 关键点2 权重计算 升级1 通过查表减少计算量 升级2 通过数据锁存减少取数
  • cnpm下载、cnpm不存在处理、yarn安装

    1 cnpm全局安装 npm install g cnpm registry https registry npm taobao org 2 运行cnpm v 报错 不是内部环境 3 解决办法 在环境变量里添加路径 cmd中输入以下命令获取
  • 万用表怎么测量电池容量_家电维修必知:万用表测量及使用方法

    万用表怎么用 这是很多新手或是业余爱好者的一个小难题 有了万用表却不会使用 万用表是电工电器行业不可缺少的测量仪表 一般以测量电压 电流和电阻为主要目的 万用表按显示方式分为指针万用表和数字万用表 是一种多功能 多量程的测量仪表 也称三用表
  • c语言打开大于2G的文件,C语言操作大于2G的文件

    最近在做视频编解码时遇到使用fseek无法定位到一个大于2G的文件尾 由于自己功底不扎实 百思不得其解 请教大神后得知在VC平台下使用 fseeki64可以解决问题 然而自己傻乎乎的在获取文件指针位置的地方依旧使用的ftell 中途调试N久
  • (Java)leetcode-42 Trapping Rain Water(接雨水)

    题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图 计算按此排列的柱子 下雨之后能接多少雨水 上面是由数组 0 1 0 2 1 0 1 3 2 1 2 1 表示的高度图 在这种情况下 可以接 6 个单位的雨水 蓝色部分表示雨水
  • Servlet重要的API

    重要的API 重要的API config response响应 响应头的相关操作 响应输出流的操作 其它操作 request请求 请求头数据 Request乱码问题的解决方法 Java反射基础 重要的API config init 和ini

随机推荐

  • 【软件测试简答题】

    软件测试简答题 1 根据G Mayers的观点 软件测试的目的是什么 软件测试是 1 为了发现错误而执行程序的过程 2 一个好的用例能够发现至今尚未发现的错误的测试 3 一个成功的测试是发现至今尚未发现的错误的测试 2 简述软件测试的任务
  • java试题 算法训练 大小写转换

    试题 算法训练 大小写转换 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 输入一个字符串 将大写字符变成小写 小写变成大写 然后输出 输入格式 acbAB 输出格式 ACBab 样例输入 一个满足题目要求的输入范例 例
  • 浅析Python爬虫ip程序延迟和吞吐量影响因素

    作为一名资深的爬虫程序员 今天我们很有必要来聊聊Python爬虫ip程序的延迟和吞吐量 这是影响我们爬取效率的重要因素 这里我们会提供一些实用的解决方案 让你的爬虫程序飞起来 网络延迟 首先 让我们来看看网络延迟对爬虫ip程序性能的影响 网
  • 【2022】小米秋招前端笔试(卷1+卷2单选题)

    文章目录 小米秋招前端笔试卷1 1 Git 暂存操作的API是什么 2 的valueOf和toString的结果是什么 3 排序算法中哪一种算法的时间复杂度是O nlogn 4 通常情况下 一个URL的格式是 5 以下哪个项目不是可以在HT
  • 【Educoder作业】问题求解——for 循环

    E d u c o d e r Educoder Educoder作
  • VUE全局过滤器

    对于反复使用或多个组件使用的过滤器相同时应该考虑全局过滤器 1 最基本的使用方法 在main js中注册 Vue filter MyFilter function value 返回处理后的值 return value 在组件直接使用即可 2
  • THINKPHP5.1在windows系统下,安装workerman

    一 首先你要在项目里安装composer 按照步骤下载 php r copy https install phpcomposer com installer composer setup php php composer setup php
  • Linux(云计算)期末复习资料

    1 linux概述 Linux是一种自由 开放源代码的操作系统 它最初由芬兰的Linus Torvalds在1991年开发 目前已经成为世界上最流行的操作系统之一 Linux操作系统的特点是免费 稳定 安全 可定制 可移植性强 支持多任务
  • mysql索引 文件坏了_MySQL索引失效的几种情况

    1 索引无法存储null值 a 单列索引无法储null值 复合索引无法储全为null的值 b 查询时 采用is null条件时 不能利用到索引 只能全表扫描 为什么索引列无法存储Null值 a 索引是有序的 NULL值进入索引时 无法确定其
  • ASTM 协议

    ASTM 协议为标准组织美国材料实验室协会 ASTM 制定的在医疗临床实验室仪器和计算机系统间传输信息的一个标准 此标准有多个版本 本文中提到的版本为 E1394 97 下文中提到的 ASTM 均为 ASTM 的 E1394 97 是在 1
  • Kettle系列(一)下载安装与基础配置

    Kettle系列 一 下载安装与基础配置 说明 一 下载 二 目录结构 三 基础配置 1 环境变量 2 kettle配置 四 连接mysql8 五 连接其他数据库 六 总结 说明 更新时间 2023 08 13 17 47 本文记录了win
  • spring cloud系列学习(十、 使用Spring Security实现OAuth2授权认证存储redis)

    1 新增spring boot 导包
  • AOP获取方法返回值

    我们用Spring的AOP切面做日志收集或者记录的时候 在springboot中用 Aspect注解 比如 Aspect public class AdviceTest Before execution com abc service ma
  • xtu p1040 汉诺塔

    描述 约19世纪末 在欧州的商店中出售一种智力玩具 在一块铜板上有三根杆 最左边的杆上自上而下 由小到大顺序串着由64个圆盘构成的塔 目的是将最左边杆上的盘全部移到中间的杆上 条件是一次只能移动一个盘 且不允许大盘放在小盘的上面 这是一个著
  • Windows 7 64位机上搭建Android开发环境

    1 从http www oracle com technetwork java javase downloads jdk7 downloads 1880260 html下载Java JDK 根据机子本身配置 选择jdk 7u25 windo
  • Java整合GPT-3.5和GPT-4,让PPT制作变得更加轻松智能化

    在当今的商业环境中 PPT演示文稿已成为一种重要的沟通工具 然而 创建高质量的PPT往往耗时且繁琐 基于这个痛点 本文将介绍如何使用Java整合GPT 3 5 4 根据PPT模板自动生成完整的PPT 我们将使用Apache POI库操作来P
  • 通过ref使元素动态高度

    observeResize this nextTick gt const moreEditBoxHeight new ResizeObserver entries gt for let entry of entries 执行其他操作 let
  • centos8 安装docker环境

    CentOS8官方源不可用 需要切换到阿里云的centos8的源 先安装yum utils组件后 再增加docker源后 才可以进行docker的安装使用 备份centos8原有源信息 cp r etc yum repos d etc yu
  • 谈谈滞后补偿器与PI控制及其原理分析

    本文一览 1 什么是滞后补偿器以及和PI控制的联系 2 PI控制对系统的影响 1 什么是超前补偿器以及和PI控制的联系 上一篇文章提到了超前补偿器 超前这个词的含义就是相位提前 相位提前所带来的的好处就是减少振荡 加快系统的稳定 但是使用超
  • Android 状态栏、标题栏、屏幕高度

    http xqjay19910131 yahoo cn iteye com blog 1435249 android 状态栏 标题栏 屏幕高度 博客分类 android app 1 获取状态栏高度 decorView是window中的最顶层