`

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开发中,准确地获取屏幕、状态栏和标题栏的尺寸是至关重要的,这有助于开发者创建适应不同设备和屏幕尺寸的应用。以下是一些关于如何获取这些尺寸的关键知识点。 1. **屏幕尺寸获取** - **DisplayMetrics...

    Android 组件 Axure 状态栏 标题栏

    在实际设计时,你需要确保状态栏的高度符合Android的规范,同时考虑到刘海屏或打孔屏等不同屏幕形态对状态栏的影响。 标题栏(也称为Action Bar)是Android应用中另一个关键组件,通常包含应用图标、标题文字以及...

    Android状态栏透明(沉浸式)Demo

    本Demo主要展示了如何实现Android状态栏的透明化,并提供了具体的实践代码示例。 首先,Android的状态栏透明可以通过API 19(KitKat)引入的`fitsSystemWindows`属性来实现。这个属性可以控制布局是否应该避开系统...

    获取分辨率,状态栏标题栏高度

    在Android开发中,获取屏幕分辨率、状态栏高度和标题栏高度是常见的需求,尤其是在自定义布局或者实现全屏效果时。下面将详细讲解如何实现这些功能。 首先,我们来看如何获取屏幕的分辨率。屏幕分辨率通常指的是...

    Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果

    标题所提到的"Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果"正是针对这一主题。这种效果允许应用内容延伸到状态栏区域,同时保持状态栏的图标和时间等信息可见,通常是通过使状态栏变透明来实现。 要...

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

    在Android开发过程中,有时我们需要精确地了解设备屏幕的具体尺寸,包括状态栏和标题栏的高度等信息。这对于实现自适应布局、全屏显示等功能至关重要。本文将详细介绍如何在Android应用中获取这些关键尺寸数据。 ##...

    Android-获取手机屏幕大小屏幕分辨率屏幕密度导航栏高度标题栏高度

    在Android开发中,了解设备的屏幕属性是至关重要的,这些属性包括屏幕大小、屏幕分辨率、屏幕密度以及系统组件的高度如导航栏和标题栏。这些信息对于优化应用布局、适配不同设备以及提供良好的用户体验至关重要。...

    Android 上滑隐藏标题栏下滑显示标题栏(带动画效果、无卡顿、无空白)

    在Android应用开发中,用户界面的设计与交互是至关...在实际应用中,可以根据具体需求进行调整和优化,比如增加状态栏的处理,或者适配不同屏幕尺寸。在项目中,你可以参考提供的`HideTitleBarTest`示例代码进行实践。

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

    总的来说,获取屏幕高度、状态栏高度和标题栏高度是Android开发中的基础操作,了解这些可以帮助开发者精确控制界面布局,确保不同设备上的适配效果。在实际开发中,还需要考虑不同Android版本之间的兼容性问题,以及...

    android状态栏与toolbar一体化

    在Android应用开发中,"android状态栏与toolbar一体化"是一个常见的设计需求,它涉及到UI界面的统一性和用户体验的提升。状态栏(StatusBar)是手机屏幕顶部显示系统信息的地方,如时间、信号强度、电量等,而...

    解决android自定义标题栏充满的问题

    标题栏通常位于布局的顶部,如果想要自定义标题栏充满屏幕,需要考虑布局的填充属性(比如`android:fillViewport="true"`)以及权重分配。 对于自定义标题栏,通常会创建一个新的XML布局文件,用于定义标题栏的样式...

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

    在Android开发中,有时我们需要获取到设备的特定信息,如标题栏和状态栏的高度,屏幕的尺寸,甚至模拟系统的某些功能,例如Home键操作。下面将详细讲解如何实现这些功能。 1. **获取标题栏高度**: 标题栏通常位于...

    Android获得控件和状态栏高度

    在Android应用开发中,有时我们需要获取屏幕上的控件高度以及状态栏的高度。这通常是为了确保应用界面能够正确地适应不同设备的屏幕尺寸和特性,例如为了防止布局被状态栏遮挡或者调整布局使其看起来更加美观。本文...

    Android沉浸式状态栏 + actionBar渐变 + scrollView顶部伸缩

    沉浸式状态栏(Translucent Status Bar)是指让状态栏变得半透明,从而让应用的内容可以延伸到状态栏下方,增加屏幕的有效显示区域。在Android 5.0(Lollipop)及以上版本,系统提供了原生支持。通过设置`...

    android 实现沉侵式状态栏

    6. **测试**:确保在各种设备和Android版本上进行充分的测试,因为不同的设备可能有不同的状态栏高度和导航栏行为。 在`TestDemo`这个示例项目中,你可以找到具体的代码实现,通过查看和运行这个项目,可以更直观地...

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

    在Android开发中,获取屏幕、状态栏以及标题栏的高度是常见的需求,这有助于开发者精确地控制UI布局。本文将详细讲解如何在Android中获取这些高度。 1. **Android手机屏幕的高度** 获取屏幕的高度通常有两种方法。...

    Android 标题栏渐变效果

    可以使用`ObjectAnimator`、`ValueAnimator`或者`PropertyAnimator`来控制标题栏的透明度、高度、颜色等属性的变化。例如,当用户上滑时,标题栏的透明度从0逐渐变为1,以达到逐渐显示的效果。 3. **滑动手势检测**...

Global site tag (gtag.js) - Google Analytics