Android中状态栏的隐藏

来源:互联网 发布:java if else同时执行 编辑:程序博客网 时间:2024/04/30 09:21

网上找了好多状态栏隐藏的方法,搜集总结一下,供以后参考。

 转载请注明出处:http://blog.csdn.net/harhy
系统中状态栏的隐藏
定制系统的时候,想去掉系统中的状态栏,系统中的状态栏隐藏的可在framework中的SystemUI.apk中修改实现。
SystemUI.apk代码位于
RK2908/ics/frameworks/base/packages/SystemUI
设置状态栏不显示:
打开文件SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
找到如下代码
460         final TabletStatusBarView sb = (TabletStatusBarView)View.inflate(
 461                 context, R.layout.status_bar, null);
 462         mStatusBarView = sb;

在代码之后加入如下一行
mStatusBarView.setVisibility(View.INVISIBLE);

重新编译得到SystemUI.apk
xiaxg@system:~/RK2908/ics/build$ source  envsetup.sh
xiaxg@system:~/RK2908/ics/frameworks/base/packages/SystemUI$  mm

得到的SystemUI.apk   位于out/target/product/rk29sdk/system/app/SystemUI.apk

将SystemUI.apk放在目标板 /system/app下;
如不重启系统的话,需杀掉com.android.systemui进程才会运行新的SystemUI.apk


Apk中状态栏的隐藏,全屏的实现
在开发中我们经常需要把我们的应用设置为全屏,这里介绍两种方法,一中是在代码中设置,另一种方法是在配置文件里改。
1. 在代码中设置: 
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) 之前,不然会报错。
2. 在配置文件里修改
关键此行: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>   
说明,用前者在我们应用运行后,会看到短暂的状态栏,然后才全屏,而第二种方法是不会有这种情况的,所以建议使用后者!

 

Android4.0隐藏状态栏:

hide statusbar
grep "status_bar_height" * -nR
将下面文件中关于status_bar_height定义的改为0dip.
android4.0/frameworks/base/core/res/res/values-large/dimens.xml
android4.0/frameworks/base/core/res/res/values-sw480dp/dimens.xml
android4.0/frameworks/base/core/res/res/values-sw600dp/dimens.xml
android4.0/frameworks/base/core/res/res/values/dimens.xml
android4.0/packages/apps/Launcher2/res/values-sw480dp/dimens.xml
android4.0/packages/apps/Launcher2/res/values-sw600dp/dimens.xml
android4.0/packages/apps/Launcher2/res/values/dimens.xml


原创粉丝点击