如何为手机和平板电脑设置screenOrientation

时间:2013-09-02 03:25:39

标签: android

我的manifest.xml如下:

    <activity
        android:name="packagename"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:screenOrientation="sensor" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

on onCreate in Activity如下:

    TelephonyManager manager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
    if(manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {
        //Tablet
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
    }
    else {
        //Mobile
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
    }

我在manifest.xml中设置了默认的SCREEN_ORIENTATION_SENSOR 并在onCreate中判断手机或平板电脑 但它最初可能会显示LANDSCAPE,然后在手机设备上更改为PORTRAIT 我最初不想展示LANDSCAPE 我该怎么做?

3 个答案:

答案 0 :(得分:3)

将呼叫推迟到setContentView(),直到以下:

TelephonyManager manager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
if(manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {
    //Tablet
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
else {
    //Mobile
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}

// Set content View
setContentView(R.layout.whatever);

// Or
setContentView(mContentView);

答案 1 :(得分:1)

在manifest.xml文件中添加此行。

<activity android:name=".activity"
  android:screenOrientation="portrait">
</activity>

答案 2 :(得分:1)

删除与您编码的方向相关的所有内容,然后添加此

android:screenOrientation="portrait"

参加您的活动。