在横向模式下的android force启动活动

时间:2013-04-10 02:18:39

标签: android android-activity orientation screen-orientation android-orientation

我正在尝试以横向模式启动MyActivity。问题是它目前正以纵向模式启动,然后进入横向模式。

我在AndroidManifest.xml中定义了MyActivity,如下所示:

<activity
        android:name="com.myproject.MyActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:launchMode="singleTop"
        android:screenOrientation="landscape"
        android:taskAffinity="com.myproject"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>

有没有办法强制将活动直接启动到横向模式?

4 个答案:

答案 0 :(得分:3)

尝试覆盖onConfigurationChanged方法。

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

答案 1 :(得分:1)

您需要两个部件来保证性能。

MainActivity.java中,输入以下内容:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

然后在AndroidManifest.xml中,包含以下内容以防止配置更改:

    <activity
        android:name="com.myproject.MyActivity"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

这应该有用!

答案 2 :(得分:0)

以下示例有效:

@Override
protected void onCreate(Bundle savedInstanceState) {
    Me = this;
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

答案 3 :(得分:0)

  1. AndroidManifest.xml的{​​{1}}中,要强制以横向模式启动,请添加<activity>

  2. 在要强制以横向模式启动的android:screenOrientation="locked"的{​​{1}}中,添加onCreate

说明:

  • 启动“活动”时,默认情况下,默认 Activity将获取设备的当前方向,如果您的设备是纵向模式,则“活动”是纵向模式。如果您的设备是横向的,那么活动就是横向的。因此,您需要先锁定方向。
  • 然后您需要在Activity的onCreate中设置方向,否则,该应用将崩溃。
  • 您还可以在requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPEActivity中设置方向,但是如果只需要设置一次方向,则只需在onStart上设置即可。