0

我的 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>

并在 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。
一开始我不想展示风景。
我该怎么做?

4

3 回答 3

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);
于 2013-09-02T03:35:15.773 回答
1

在 manifest.xml 文件中添加这一行。

<activity android:name=".activity"
  android:screenOrientation="portrait">
</activity>
于 2013-09-02T03:32:23.487 回答
1

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

android:screenOrientation="portrait"

到你的活动。

于 2013-09-02T03:35:00.660 回答