美文网首页Android 屏幕适配方案合集
Android 设定横屏,禁止屏幕旋转,Activity重置

Android 设定横屏,禁止屏幕旋转,Activity重置

作者: 小小程序员jh | 来源:发表于2018-03-21 17:16 被阅读25次

    转载自:
    http://blog.csdn.net/u012364372/article/details/51088831

    1. 设定屏幕方向

    当指定了屏幕的方向后(非SCREEN_ORIENTATION_UNSPECIFIED),屏幕就不会自动的旋转了

    有2中方式控制屏幕方向:

    1.1 修改AndroidManifest.xml

    在AndroidManifest.xml的activity中加入:

    横屏:

           android:screenOrientation=”landscape”
    

    竖屏:

           android:screenOrientation=”portrait”
    

    1.2 setRequestedOrientation

    横屏:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    竖屏:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    ActivityInfo:

    int

    SCREEN_ORIENTATION_BEHIND

    |

    Constant corresponding to behind in the screenOrientation attribute.

    |
    |

    int

    |

    SCREEN_ORIENTATION_FULL_SENSOR

    Constant corresponding to fullSensor in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_FULL_USER

    Constant corresponding to fullUser in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_LANDSCAPE

    Constant corresponding to landscape in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_LOCKED

    Constant corresponding to locked in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_NOSENSOR

    Constant corresponding to nosensor in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_PORTRAIT

    Constant corresponding to portrait in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_REVERSE_LANDSCAPE

    Constant corresponding to reverseLandscape in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_REVERSE_PORTRAIT

    Constant corresponding to reversePortrait in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_SENSOR

    Constant corresponding to sensor in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_SENSOR_LANDSCAPE

    Constant corresponding to sensorLandscape in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_SENSOR_PORTRAIT

    Constant corresponding to sensorPortrait in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_UNSPECIFIED

    |

    Constant corresponding to unspecified in the screenOrientation attribute.

    int

    |

    SCREEN_ORIENTATION_USER

    Constant corresponding to user in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_USER_LANDSCAPE

    Constant corresponding to userLandscape in the screenOrientation attribute.

    int

    SCREEN_ORIENTATION_USER_PORTRAIT

    Constant corresponding to userPortrait in the screenOrientation attribute.

    2. 禁止 屏幕旋转后重置Activity

    屏幕旋转后会强制调用Activity.onCreate方法,所以会重置Activity

    禁止方法:

    修改AndroidManifest.xml

    android:configChanges=”orientation”

    最近在做Android的播放器,遇到采用以上方法后,仍然出现屏幕旋转后触发Activity.onCreate,经查阅资料后,发现需要添加screenSize处理

    具体代码为:

    [html] view plaincopy

    <embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="15" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=15&height=16" wmode="transparent" style="box-sizing: border-box;">

    1. android:configChanges="orientation|keyboardHidden|screenSize"

    禁止重置Activity会造成Screen的宽高颠倒, 需要手动修正。

    相关文章

      网友评论

        本文标题:Android 设定横屏,禁止屏幕旋转,Activity重置

        本文链接:https://www.haomeiwen.com/subject/mkagqftx.html