Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Disable rotations by 90°, but enable rotations by 180°

I would like to create an Android app (for a tablet) that should be only displayed in landscape orientation, e.g. the app should ignore rotations by 90°, but support rotations by 180°.

Adding android:screenOrientation="landscape" in the manifest causes the app to ignore all rotations, (even the 180° rotations), i.e. rotating the device by 180° shows the application upside down.

Without the android:screenOrientation attribute my app is displayed "correctly" in all four positions. Rotation the device by 180° flips the UI vertically resp. horizontally.

When rotation the device the following log messages are created (maybe this helps?):

[...]: INFO/WindowManager(1290): Setting rotation to 1, animFlags=0
Rotation is a value between 0 and 3 representing the current orientation.

Summarized: Is it possible to enable an app to support both landscape orientations?

like image 229
janjonas Avatar asked Dec 06 '10 22:12

janjonas


1 Answers

The new sensorLandscape screen orientation is apparently meant for this purpose.

Eg, you could do:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

Unfortunately, this is only available as of Android 2.3. I'm currently looking for a way to achieve this on Froyo.

like image 183
olivierg Avatar answered Nov 02 '22 10:11

olivierg