文章目录
  1. 1. Android全屏:消除title_bar和虚拟导航栏
    1. 1.1. 消除title_bar
      1. 1.1.1. 代码动态修改:
      2. 1.1.2. 修改AndroidManifest.xml文件
      3. 1.1.3. 在res/values目录下面新建一个style.xml的文件
    2. 1.2. 全屏
    3. 1.3. 去掉虚拟导航

Android全屏:消除title_bar和虚拟导航栏

消除title_bar

在进行android开发时,每个Activity会默认带上一个title bar用以显示程序名,有时为了扩大屏幕的显示区域需要去掉这个title bar,这个时候可以用以下方法操作:

最简单的就是动态修改了。

代码动态修改:

1
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

注意这句一定要写在setContentView()方法的前面,不然会报错的
因为是动态修改,所以可能会在程序运行的开始,看到先出现标题栏,然后再消失的情况

修改AndroidManifest.xml文件

1
2
3
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">

上面将属性加到了application,会应用到整个程序,如果想应用到某一个activity,可以像下面这样:

1
2
3
<activity
android:name="xxx"
android:theme="@android:style/Theme.NoTitleBar">

还有一种情况就是默认的Theme.NoTitleBar不满足我们的需求,或者想针对于某几个activity做一些操作,比如notitle,orientation等等,可以参考第三种方式,自己定义一个主题。

在res/values目录下面新建一个style.xml的文件

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="notitle">
<item name="android:windowNoTitle">true</item>
</style>
</resources>

这样,我们就自定义了一个style,就相当于一个主题,然后在AndroidManifest.xml文件中定义

1
2
3
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/notitle">

全屏

也是三种方法,参考上面。

1
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
1
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
1
2
3
application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/fullscreem"

去掉虚拟导航

其实现在全屏了还是存在最下面的虚拟导航,即home,back的系统按键。
这里并不能彻底隐藏,只能点击隐藏,如果你只是设置了setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);那么点击屏幕后就会出来,而且再也隐藏不了了,所以这里我建议给activity加一个onClick事件。

1
2
3
4
5
6
7
8
9
10
11
public void onClick(View v) {
// TODO Auto-generated method stub
int i = v.getSystemUiVisibility();
if (i == View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) {
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
} else if (i == View.SYSTEM_UI_FLAG_VISIBLE) {
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
} else if (i == View.SYSTEM_UI_FLAG_LOW_PROFILE) {
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}

然后你就可以实现点击隐藏,点击再出现,再点击又隐藏了。

文章目录
  1. 1. Android全屏:消除title_bar和虚拟导航栏
    1. 1.1. 消除title_bar
      1. 1.1.1. 代码动态修改:
      2. 1.1.2. 修改AndroidManifest.xml文件
      3. 1.1.3. 在res/values目录下面新建一个style.xml的文件
    2. 1.2. 全屏
    3. 1.3. 去掉虚拟导航