Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - Lock orientation to two directions only

How can make my android application to be Landscape or portrait but without the reverse directions?

Meaning that I want to enable SCREEN_ORIENTATION_PORTRAIT and SCREEN_ORIENTATION_LANDSCAPE but to disable SCREEN_ORIENTATION_REVERSE_LANDSCAPE and SCREEN_ORIENTATION_REVERSE_PORTRAIT.

Thanks

like image 889
Yaniv Avatar asked May 08 '11 12:05

Yaniv


1 Answers

I had the same problem/feature request in my camera app, and found this post:

android camera surfaceview orientation

In changeRotation just comment ORIENTATION_PORTRAIT_INVERTED and ORIENTATION_LANDSCAPE_INVERTED, and create a method rotateViews(int degrees) to rotate all of the images(buttons) of your layout when switching between regular landscape/portrait.

Also,

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

worked better for me than

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
like image 152
Mark Avatar answered Sep 28 '22 09:09

Mark