我的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 我该怎么做?
答案 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"
参加您的活动。