要让程序界面保持一个方向,不随手机方向转动而变化的处理办法:

在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):

Java代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".GamePlay"
android:screenOrientation="portrait"></activity>
<activity android:name=".OptionView"
android:screenOrientation="portrait"></activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>




另外,android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!

有的程序适合从竖屏切换到横屏,或者反过来,这个时候怎么办呢?可以在配置Activity的地方进行如下的配置android:screenOrientation="portrait"。这样就可以保证是竖屏总是竖屏了,或者landscape横向。

而有的程序是适合横竖屏切换的。如何处理呢?首先要在配置Activity的时候进行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重写Activity的onConfigurationChanged方法。实现方式如下,不需要做太多的内容:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// land do nothing is ok
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// port do nothing is ok
}
}

更多相关文章

  1. 利用drozer进行Android渗透测试 - AndroSecurity
  2. Android(安卓)UnitTest
  3. Android(安卓)AIDL 实现两个APP之间的跨进程通信实例
  4. android6.0 状态栏添加图标 举例Location
  5. Android中使用log4j
  6. Android动画效果
  7. android NDK学习篇3之two-libs——使用(多个)静态库生成动态库
  8. Android属性之excludeFromRecents
  9. java引入Android(安卓)NinePatch技术的意义

随机推荐

  1. rtx3080和rtx3080ti性能差距 rtx3080和rt
  2. i5 9400f和r5 3500x游戏性能哪个好
  3. Go语言基础之网络编程
  4. rtx3090和rtx3080ti性能差距 rtx3090和r
  5. Go语言基础之包
  6. crmeb pro单商户前台uniapp修改编译打包
  7. 听乌森聊强化学习的那些事
  8. xshell连接服务器提示拒绝密码
  9. Go语言基础之map
  10. Go操作kafka