美文网首页工作生活
Android 四大组件--Activity 系列(二) ---

Android 四大组件--Activity 系列(二) ---

作者: 青青雉 | 来源:发表于2019-07-01 11:43 被阅读0次

            在 Android 中大多数的时候,大家都需要对于Activity 进行屏幕方向的竖屏限制(大部分的时候APP 都需要对于屏幕进行竖屏的限制),但是也有很多时候需要对于屏幕进行横屏操作(大部分的游戏都是使用的横屏的限制),但是对于视频而言横竖屏切换是不可避免的一个操作.那么,在这里我就为大家介绍一下,因为某些问题需要和之后的一些东西相关联,所以将横竖屏切换转换为多个版本进行介绍

     Activity 的横屏/竖屏的使用方式

                    方式一:(清单文件配置)

                            在清单文件中对于Activity 加上 screenOrientation 的属性,对于screenOrientation  具有以下几个值

                                unspecified : 默认值,由系统显示方向,在不同的系统上可能会有所不同

                                landscape : 横屏方向,显示的宽比高长

                                portrait : 竖屏方向,显示的高比宽长

                                user : 用户当前首选的方向

                                behind : 跟activity堆栈中的下面一个activity的方向一致

                                sensor : 由设备的物理方向传感器决定,如果用户旋转设备,这屏幕就会横竖屏切换

                                nosensor : 忽略物理方向传感器,这样就不会随着用户旋转设备而横竖屏切换了(”unspecified”设置除外)

                                reverseLandscape : API 9 以上,反向横屏

                                reversePortrait : API 9 以上,反向竖屏

                                sensorLandscape : API 9 以上,横屏,但是可以根据 物理方向传感器来切换正反向横屏

                                sensorPortrait : API 9 以上,竖屏,但是可以根据 物理方向传感器来切换正反向竖屏

                                fullSensor : API 9 以上,上下左右四个方向,由物理方向传感器决定

                                locked : API 18 以上,锁死当前屏幕的方向

                        方式二:(java代码配置)

                                在Activity 的onCreate 的方法中调用 setRequestedOrientation 的方法进行配置横竖屏

                                需要注意的是:

                                setRequestedOrientation 方法需要在 setContentView 之前调用

                            其中:

                                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : 竖屏

                                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT  : 横屏

                                如果不配置,那么就是默认的,由系统显示方向


       视频播放的时候根据按钮来判断是否是横屏/竖屏

            在Activity 的 setScreenOrientation 方法中进行配置     

            代码:

    @Override

    public void setRequestedOrientation(int requestedOrientation) {

    super.setRequestedOrientation( requestedOrientation );

        if (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT  ==  requestedOrientation){

    //todo 当前屏幕是横屏

        }else  if (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE  ==  requestedOrientation){

    //todo 当前屏幕适说

        }

    }

    相关文章

      网友评论

        本文标题:Android 四大组件--Activity 系列(二) ---

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