Android五种隐藏状态栏和标题栏的方法

Android五种隐藏状态栏和标题栏的方法

方法一:

public class MainActivity extends Activity
{ 

  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState); 

    // 隐藏标题栏
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // 隐藏状态栏
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.activity_main);
  } 

}

方法二:


<!-- 同时隐藏状态栏和标题栏  --> 
<activity
  android:name="com.ysj.demo.MainActivity"
  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 theme. -->
<style name="AppTheme" parent="AppBaseTheme">
  <!-- All customizations that are NOT specific to a particular API-level can go here. -->
  <!-- 隐藏状态栏 -->
  <item name="android:windowFullscreen">true</item>
  <!-- 隐藏标题栏 -->
  <item name="android:windowNoTitle">true</item>
</style>

方法四:动态显示隐藏状态栏

//隐藏状态栏
 WindowManager.LayoutParams lp = context.getWindow().getAttributes();
 lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
 context.getWindow().setAttributes(lp);
//显示状态栏
  WindowManager.LayoutParams attr = context.getWindow().getAttributes();
  attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
  context.getWindow().setAttributes(attr); 

方法五:动态显示隐藏状态栏

View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。

setSystemUiVisibility方法传入的实参分析:

setSystemUiVisibility(int visibility)方法可传入的实参为:

1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,
Activity不全屏显示(恢复到有状态的正常情况)。
    2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。
    3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。
    4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。
    5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。
    8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。

package com.administrator.statubarapplication;  

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;  

public class MainActivity extends Activity implements View.OnClickListener {  

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);  

    setContentView(R.layout.activity_main);
    assignViews();  

    setOnClicks();
  }  

  private void setOnClicks() {
    mButton1.setOnClickListener(this);
    mButton2.setOnClickListener(this);
    mButton3.setOnClickListener(this);
    mButton4.setOnClickListener(this);
    mButton5.setOnClickListener(this);
    mButton6.setOnClickListener(this);
    mButton7.setOnClickListener(this);
  }  

  private LinearLayout mMain;
  private TextView mTextview;
  private Button mButton1;
  private Button mButton2;
  private Button mButton3;
  private Button mButton4;
  private Button mButton5;
  private Button mButton6;
  private Button mButton7;  

  private void assignViews() {
    mMain = (LinearLayout) findViewById(R.id.main);
    mTextview = (TextView) findViewById(R.id.textview);
    mButton1 = (Button) findViewById(R.id.button1);
    mButton2 = (Button) findViewById(R.id.button2);
    mButton3 = (Button) findViewById(R.id.button3);
    mButton4 = (Button) findViewById(R.id.button4);
    mButton5 = (Button) findViewById(R.id.button5);
    mButton6 = (Button) findViewById(R.id.button6);
    mButton7 = (Button) findViewById(R.id.button7);
  }  

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.button1:
        //Activity全屏显示,且状态栏被隐藏覆盖掉
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
        mTextview.setText("Activity全屏显示,且状态栏被隐藏覆盖掉\nView.SYSTEM_UI_FLAG_FULLSCREEN");
        break;  

      case R.id.button2:
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
        mTextview.setText("恢复到有状态的正常情况\nView.SYSTEM_UI_FLAG_VISIBLE");
        break;
      case R.id.button3:
        mMain.setSystemUiVisibility(View.INVISIBLE);
        mTextview.setText("//隐藏状态栏,同时Activity会伸展全屏显示\nView.INVISIBLE");
        break;
      case R.id.button4:
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        mTextview.setText("Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮\nView" +
            ".SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN \n View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION");
        break;
      case R.id.button5:
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        mTextview.setText("Activity全屏显示,状态栏透明\nView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION");
        break;
      case R.id.button6:
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        mTextview.setText("隐藏虚拟按键\nView.SYSTEM_UI_FLAG_HIDE_NAVIGATION");
        break;
      case R.id.button7:
        mMain.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
        mTextview.setText("状态栏低能显示,有一些会被隐藏\nView.SYSTEM_UI_FLAG_LOW_PROFILE");
        break;  

            default:
        break;
    }
  }
}
(0)

相关推荐

  • Android 中实现ListView滑动隐藏标题栏的代码

    布局中listview要覆盖标题栏 int mTouchSlop = ViewConfiguration.get(this).getScaledTouchSlop(); //滑动监听 showHideTitleBar(true); ListView standby_lv = (ListView) findViewById(R.id.standby_lv); standby_lv.setOnTouchListener(new View.OnTouchListener() { @Override p

  • 3种Android隐藏顶部状态栏及标题栏的方法

    本文包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法,分享给大家供大家参考,具体内容如下 方法一 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEA

  • Android中隐藏标题栏和状态栏的方法

    一.隐藏标题栏 复制代码 代码如下: //隐藏标题栏        this.requestWindowFeature(Window.FEATURE_NO_TITLE); 二.隐藏状态栏 复制代码 代码如下: //隐藏状态栏        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 三.去掉所有Activity界

  • Android 顶部标题栏随滑动时的渐变隐藏和渐变显示效果

    各位早上好,话不多说,先上效果图: 注意顶部:首页TextView的变化(显示和隐藏)! 首先分析下:UI状态,其是由RecyclerView添加头部组成+RecyclerView 头部添加和RecyclerView分别引用如下:具体的分装数据的过程这里就不在说明,下篇博客会更加深入的写关于 RecyclerView总添加多种不同type类型 compile 'com.bartoszlipinski.recyclerviewheader:library:1.2.1' compile 'com.a

  • Android 开发隐藏标题栏的方法总结

    android 开发隐藏标题栏的方法总结 1. 推荐!(因为现在工程都默认的为AppTheme) 在value/styles.xml里面添加自定义属性 <resources xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTh

  • Android实现隐藏状态栏和标题栏

    隐藏标题栏需要使用预定义样式:android:theme="@android:style/Theme.NoTitleBar". 隐藏状态栏:android:theme="@android:style/Theme.NoTitleBar.Fullscreen". <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://

  • Android隐藏标题栏及解决启动闪过标题的实例详解

    Android隐藏标题栏及解决启动闪过标题的实例详解 方法一: 在代码中设置 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 方法二: 在AndroidManifest.xml 里面设置 <application android:icon="@drawable/icon" android:label="@string/app_name" Android:theme="@androi

  • Android中隐藏状态栏和标题栏的方法汇总(隐藏状态栏、标题栏的五种方法)

      方法一: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏状态栏 getWindow().setFlags(WindowManager

  • Android五种隐藏状态栏和标题栏的方法

    Android五种隐藏状态栏和标题栏的方法 方法一: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏状态栏 getWindow().se

  • Android编程实现隐藏状态栏及测试Activity是否活动的方法

    本文实例讲述了Android编程实现隐藏状态栏及测试Activity是否活动的方法.分享给大家供大家参考,具体如下: 一. 隐藏状态栏 方法如下:在程序中加入//remove title 的那部分代码即可实现. package cn.edu.pku; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; public

  • Android 动态显示和隐藏状态栏详解及实例

    Android 动态显示和隐藏状态栏 View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性. setSystemUiVisibility(int visibility)方法可传入的实参为: 1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况). 2. View.INVISIBLE:隐藏状态栏,同时A

  • Android 8.1隐藏状态栏图标的实例代码

    近期客户需求,状态栏只显示时间和电池图标,如图 状态栏图标的布局文件在frameworks\base\packages\SystemUI\res\layout\status_bar.xml,主要包括通知,定位,蓝牙,信号,时间,电池等图标,只要在相应的布局文件中加入属性android:visibility="invisible" 或者"gone"即可 <?xml version="1.0" encoding="utf-8"

  • Android编程实现禁止状态栏下拉的方法详解

    本文实例讲述了Android编程实现禁止状态栏下拉的方法.分享给大家供大家参考,具体如下: 简介 项目需求APP全屏时,要禁止状态栏的下拉,这个应该是一个普遍的需求了吧,但Android系统没有直接提供给普通APP直接调用的接口.那么我们只能自己想办法增加接口去实现该功能了. 具体实现方法 1. 修改SystemUI 路径:==/frameworks/base/packages/SystemUI//src/com/android/systemui/statusbar/phone/PhoneSta

  • 五种SQL Server分页存储过程的方法及性能比较

    在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN

随机推荐