Android禁止横屏竖屏切换
16lz
2021-01-23
Android禁止横屏竖屏切换
2011-03-31 10:121945人阅读评论(0)收藏举报AndroidManifest.xml里面配置
android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)
android:screenOrientation=”landscape” 设置为横屏,不能竖屏
相反一样
在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。例如:
[xhtml]view plaincopy- <applicationandroid:icon="@drawable/icon"
- android:label="@string/app_name"
- android:debuggable="true">
- <activityandroid:name="SmsActivity"
- android:label="@string/app_name"
- android:launchMode="singleTask"
- android:screenOrientation="portrait"
- android:taskAffinity="com.view.task">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- <categoryandroid:name="android.intent.category.DEFAULT"></category>
- </intent-filter>
- </activity>
- </application>
另外,android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向(给每个activity加上android:configChanges=”keyboardHidden|orientation”属性),并根据Activity的重写onConfigurationChanged(Configuration newConfig)方法来控制,这样在转屏时就不会重启activity了,而是会去调用onConfigurationChanged(Configuration newConfig)这个钩子方法。例如
[java]view plaincopy- @Override
- publicvoidonConfigurationChanged(ConfigurationnewConfig){
- try{
- super.onConfigurationChanged(newConfig);
- if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE){
- //land
- }elseif(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){
- //port
- }
- }catch(Exceptionex){
- }
- }