开发者

Android - Lock orientation to two directions only

开发者 https://www.devze.com 2023-03-03 13:44 出处:网络
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 d

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.

Than开发者_运维知识库ks


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);


  • Make sure you notify the system that you want to handle orientation changes by adding "orientation" to the android:configChanges flag attribute in the activity tag in your manifest file.

  • Override Activity.onConfigurationChanged() and inspect the Configuration.orientation field in the passed Configuration parameter and set the orientation of the activity to either ActivityInfo.SCREEN_ORIENTATION_PORTRAIT or ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE using Activity.setRequestedOrientation appropriately.

0

精彩评论

暂无评论...
验证码 换一张
取 消