现在的位置: 首页 > 综合 > 正文

Android横屏竖屏切换的问题

2013年10月08日 ⁄ 综合 ⁄ 共 2930字 ⁄ 字号 评论关闭
 

要让程序界面保持一个方向,不随手机方向转动而变化的处理办法:
在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"   
  3.       package="com.ray.linkit"   
  4.       android:versionCode="1"   
  5.       android:versionName="1.0">   
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">   
  7.         <activity android:name=".Main"   
  8.                   android:label="@string/app_name"   
  9.                   android:screenOrientation="portrait">   
  10.             <intent-filter>   
  11.                 <action android:name="android.intent.action.MAIN" />   
  12.                 <category android:name="android.intent.category.LAUNCHER" />   
  13.             </intent-filter>   
  14.         </activity>   
  15.                 <activity android:name=".GamePlay"   
  16.                 android:screenOrientation="portrait"></activity>   
  17.                 <activity android:name=".OptionView"   
  18.                 android:screenOrientation="portrait"></activity>   
  19.     </application>   
  20.     <uses-sdk android:minSdkVersion="3" />   
  21. </manifest>  

另外,android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!也可以给每个activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity,而是去调用onConfigurationChanged(Configuration newConfig)。这样就可以在这个方法里调整显示方式:

  1. if(newConfig.orientation==Configuration.  

http://blog.csdn.net/jump_1990/article/details/4766853

 

怎么样处理横屏事件

当屏幕变为横屏的时候,系统会重新呼叫当前Activity的OnCreate方法,你可以把以下方法放在你的OnCreate中来检查当前的方向,然后可以让你的SetContentView来载入不同的Layout xml.

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {

Log.i("info", "landscape");

}

else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

Log.i("info", "portrait");

}

  关于屏幕切换的时候
  首先需要在androidmanifest.xml中加入配置
  android:configChanges="orientation|keyboardHidden|navigation
  这样在程序中. Activity就不会重复的调用onCreate()
  甚至不会调用onPause.onResume.
  只会调用一个onConfigurationChanged(Configuration newConfig)
这是在XML加入配置选项的前提下.

如果在就加入选项的前提下.如上所说. Activity会重新激活onCreate方法

根据你自己的需求来选择配置改变时的处理机制这样比较好一点。

 

抱歉!评论已关闭.