Android动态切换全屏和非全屏模式
摘要 Android程序中要设置全屏包括两个部分: 窗口 全屏和A ctivity 全屏 窗口全屏 是指隐藏系统顶部用来显示时间、电量、信号等信息的 标题栏 ,A ctivity全屏 是指隐藏程序的标题栏 (只需 requestWindowFeature(Window.FEATURE_NO_TITLE); //不显示程序的标题
Android程序中要设置全屏包括两个部分:窗口全屏和Activity全屏
窗口全屏是指隐藏系统顶部用来显示时间、电量、信号等信息的标题栏,Activity全屏是指隐藏程序的标题栏(只需requestWindowFeature(Window.FEATURE_NO_TITLE);``//不显示程序的标题栏
)。这里讨论的是第二种。我们可以在程序代码中设置,也可以通过修改AndroidManifest.xml文件来实现。
1.修改程序代码。
我们需要在Activity的onCreate方法中添加相应的代码。请注意代码的位置,要在setContentView()方法之前调用哦。
public class Home 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.main);
}
}
2.修改AndroidManifest.xml。
我们可以修改标签或标签的属性值来实现。他们的区别是修改标签后所有的Activity都会全屏,而修改后只针对当前的Activity有效。注 意:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"的位置,我在两处都设置上 了,大家可以根据实际状况做出调整。```
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.dw.enotes" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <activity android:name=".activity.Hello" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
要动态的切换全屏与非全屏,那么则只能采用第一种方法。
package com.screen; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private boolean isFulllScreen = false; private Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button)findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { isFulllScreen = !isFulllScreen; if (isFulllScreen) { button.setText(getResources().getText(R.string.exit_full_screen)); WindowManager.LayoutParams params = getWindow().getAttributes(); params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; getWindow().setAttributes(params); getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); } else { button.setText(getResources().getText(R.string.full_screen)); WindowManager.LayoutParams params = getWindow().getAttributes(); params.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setAttributes(params); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); } } }); } }