这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要介绍了 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;
- }
- }
- }
来源: http://www.phperz.com/article/17/0512/334661.html