屏幕方向处理

时间:2014-01-06 19:55:18

标签: android android-orientation

在我的应用程序中,大多数活动都有固定的布局 - 肖像。 我在manifest中提到过:

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

但是,在一两个活动中我也要显示横向布局,默认情况下,活动会以纵向模式打开。但是,如果用户将手机向左/向右倾斜,则会变为横向。 (如果用户将手机上下颠倒,活动也不应进入纵向模式)。

也就是说,基本上,我想要三向改变方向。默认(Potrait)&amp;左 - 右(风景)。

那么,我需要在我的代码和代码中进行哪些更改?个XML?

  1. 我应该选择&#34; sensorPortrait&#34;或&#34; sensorLandscape&#34;
  2. 我应该使用android:configChanges =&#34; orientation&#34;
  3. 我尝试了几个步骤,但它们抛出空指针异常。

    我不知道我错过了什么。

    P.S。两种方向都有不同的布局。

    谢谢

2 个答案:

答案 0 :(得分:0)

我想你想这样做:

1)只需删除android:screenOrientation="portrait"

即可

2)在您的代码中,在onCreate()中添加this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

- (UNRELATED)SIDE NOTE -

强制横向使用:

<activity android:name="com.example.activity5" 
          android:screenOrientation="landscape" 
          android:configChanges="orientation|keyboardHidden" />

答案 1 :(得分:0)

写入Main.class(OnCreate):

setContentView(R.layout.activity_main);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);