一、AndroidManifest.xml对Activity屏幕的控制
1、显式指定屏幕方向--禁止自动切换
默认情况下,Activity是自动切换方向的。可以通过在AndroidManifest.xml中增加Activity的以下属性,显式指定屏幕方
向,禁止自动切换:
//指定为横屏
android:screenOrientation="landscape"
|
//指定为竖屏
android:screenOrientation="portrait"
|
2、
不显示窗口标题栏
可以通过Theme来实现。首先在res/values文件夹中,创建一个winStyle.xml文件,其内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="NoTitle" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
|
然后,在AndroidManifest.xml文件中,为Activity增加如下属性:
android:theme="@style/NoTitle"
|
二、
Java层对屏幕的控制
1、显式指定屏幕方向
//显式指定为竖屏
if(getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
|
//显式指定为横屏
if(getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
|
2、
不显示窗口标题栏
在代码中加入如下语句即可。
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
3、
全屏显示
在代码中加入如下语句即可。其实,这就是不显示系统状态栏(电量、信号强度等状态的显示区)。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
注意:
getRequestedOrientation、
setRequestedOrientation、
requestWindowFeature、getWindow都是Activity类的
方法。
三、避免屏幕方向切换时Activity重启
默认情况下,如果没显式指定Acitivity的屏幕方向,则会随着使用动态切换屏幕方向。如果不加设置,屏幕方向的切换会导致Activity的重启,
即会关掉Activity并重新创建一个,这将导致onDestroy、onCreate等事件的发生,因而,屏幕切换,可能会导致那些与
Activity状态相关的应用出错。例如,某个应用是在Activity的onCreate函数中创建的,则屏幕的切换会导致该程序被多次创建,这很可
能出错。
为了避免这一点,最简单的方法是,显示指定屏幕方向,禁止自动切换。但是,这又导致屏幕方向不够灵活。下面提供一种方法,避免Activity随着屏幕的
切换而重启。
首先在AndroidManifest.xml文件中,为Activity增加如下属性:
android:configChanges="orientation|keyboardHidden"
|
然后在Activity类中重载onConfigurationChanged方法即可,如下:
@Override public void onConfigurationChanged(Configuration
config) {
super.onConfigurationChanged(config);
Log.i("FirstTest", "======onConfigurationChanged"); }
|
阅读(2036) | 评论(0) | 转发(0) |