`

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

 
阅读更多
1.获取状态栏高度:

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

Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;


2.获取标题栏高度:

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

int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面所求的状态栏的高度
int titleBarHeight = contentTop - statusBarHeight


3.获取屏幕高度
  方法 1.
 
WindowManager windowManager = getWindowManager();

Display display = windowManager.getDefaultDisplay();

screenWidth = display.getWidth();

screenHeight = display.getHeight();



  方法 2.
  
DisplayMetrics dm = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity

screenWidth =dm.widthPixels;

screenHeight =dm.heightPixels;


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



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



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



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



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


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

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

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

<?xml version="1.0" encoding="utf-8"?>  
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
       package="com.android.tutor"  
       android:versionCode="1"  
       android:versionName="1.0">  
     <application android:icon="@drawable/icon" android:label="@string/app_name">  
         <activity android:name=".OpenGl_Lesson1"  
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
                   android:label="@string/app_name">  
             <intent-filter>  
                 <action android:name="android.intent.action.MAIN" />  
                 <category android:name="android.intent.category.LAUNCHER" />  
             </intent-filter>  
         </activity>  
     </application>  
     <uses-sdk android:minSdkVersion="7" />  
 </manifest>   
在这里我还想说明一下,用前者在我们应用运行后,会看到短暂的状态栏,然后才全屏,而第二种方法是不会有这种情况的,所以我建议大家使用后者! 谢谢~
分享到:
评论

相关推荐

    android获取屏幕,状态栏,标题栏宽高

    android获取屏幕,状态栏,标题栏宽高,是我自己总结的文档。

    Android如何获取屏幕、状态栏及标题栏的高度详解

    本文主要给大家介绍了关于Android获取屏幕、状态栏及标题栏高度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 在开始之前,先来看一张图: 绿色区域:屏幕区域 蓝色区域:状态栏...

    Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法

    主要介绍了Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法,涉及Android获取手机常见信息的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    Android 获取屏幕高度,标题高度,状态栏高度(实例代码)

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

    获取屏幕原始尺寸高度,包括虚拟功能键高度

    获取屏幕原始尺寸高度,包括虚拟功能键高度,获取 虚拟按键的高度,获得屏幕高度,标题栏高度,获得状态栏的高度,px转sp,sp转px

    工作中经常用到的android开发代码2

    2.没有标题栏,没有状态栏 3. 禁止重力感应 横屏 竖屏 4.handler 5.缓冲条 6.播放器读取时间专用:把毫秒 转化成 00:00 格式显示 7. activity 间互相通信Intent通信 onActivityResult的使用 8. activity 传递数据 10....

    android 手机界面各种长度的获取

    状态栏的高度、整个屏幕的大小、获取标题栏的高度、获取图片宽度、坐标移动获取各种形式的坐标

    java_关Android屏幕的工具类的标准代码

    获得屏幕高度 获得状态栏的高度 获取整块屏幕的高度 获取导航栏高度 获取虚拟按键区域的高度 获取当前屏幕截图,包含状态栏 获取当前屏幕截图,不包含状态栏 获得标题栏高度 获取通知栏高度 获取指定Activity的截屏...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android代码-PhotoPicker

    标题栏:去除难用的toolbar,改成自定义的titlebar。高度44dp,标题居中,颜色引用activity主题设置colorPrimary.可以自己设置. 底部弹出框:原项目两边有间距,现改成铺满屏幕宽度弹出 默认图片更改成黑灰色背景,...

    Android开发资料合集-World版!

    4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的代码 58 4.5.2、menu实现的两种方法 58 4.5.3、自定义MENU背景 62 4.5.4、触发menu 64 4.5.5、Context Menu和...

    Android 开发技巧

    4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的代码 58 4.5.2、menu实现的两种方法 58 4.5.3、自定义MENU背景 62 4.5.4、触发menu 64 4.5.5、Context Menu和...

Global site tag (gtag.js) - Google Analytics