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.
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:configChangesflag attribute in the activity tag in your manifest file.Override
Activity.onConfigurationChanged()and inspect theConfiguration.orientationfield in the passedConfigurationparameter and set the orientation of the activity to eitherActivityInfo.SCREEN_ORIENTATION_PORTRAITorActivityInfo.SCREEN_ORIENTATION_LANDSCAPEusingActivity.setRequestedOrientationappropriately.
加载中,请稍侯......
精彩评论