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

落爺英雄遲暮 提交于 2019-11-27 13:04:15

问题


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?


回答1:


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.



来源:https://stackoverflow.com/questions/4371631/android-disable-rotations-by-90-but-enable-rotations-by-180

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!