首页 > 其他分享 >直播app开发,系统之窗口横屏锁定以屏幕方向介绍

直播app开发,系统之窗口横屏锁定以屏幕方向介绍

时间:2023-05-30 14:11:24浏览次数:33  
标签:mPortraitRotation int app 横屏 Surface 直播 ROTATION mLandscapeRotation

直播app开发,系统之窗口横屏锁定以屏幕方向介绍

android源码中通过PhoneWindowManager.java来管理窗口的显示,为WMS的一个主要部分。其源码地址如下:

 


frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java

PhoneWindowManager关于屏幕方向控制的主要代码如下:

 


    int mLandscapeRotation = 0;  // default landscape rotation
    int mSeascapeRotation = 0;   // "other" landscape rotation, 180 degrees from mLandscapeRotation
    int mPortraitRotation = 0;   // default portrait rotation
    int mUpsideDownRotation = 0; // "other" portrait rotation
@Override
    public void setInitialDisplaySize(Display display, int width, int height, int density) {
        ...代码省略
        final Resources res = mContext.getResources();
        int shortSize, longSize;
        if (width > height) {
            shortSize = height;
            longSize = width;
            mLandscapeRotation = Surface.ROTATION_0;
            mSeascapeRotation = Surface.ROTATION_180;
            if (res.getBoolean(com.android.internal.R.bool.config_reverseDefaultRotation)) {
                mPortraitRotation = Surface.ROTATION_90;
                mUpsideDownRotation = Surface.ROTATION_270;
            } else {
                mPortraitRotation = Surface.ROTATION_270;
                mUpsideDownRotation = Surface.ROTATION_90;
            }
        } else {
            shortSize = width;
            longSize = height;
            mPortraitRotation = Surface.ROTATION_0;
            mUpsideDownRotation = Surface.ROTATION_180;
            if (res.getBoolean(com.android.internal.R.bool.config_reverseDefaultRotation)) {
                mLandscapeRotation = Surface.ROTATION_270;
                mSeascapeRotation = Surface.ROTATION_90;
            } else {
                mLandscapeRotation = Surface.ROTATION_90;
                mSeascapeRotation = Surface.ROTATION_270;
            }
        }

 

 以上就是 直播app开发,系统之窗口横屏锁定以屏幕方向介绍,更多内容欢迎关注之后的文章

 

标签:mPortraitRotation,int,app,横屏,Surface,直播,ROTATION,mLandscapeRotation
From: https://www.cnblogs.com/yunbaomengnan/p/17443085.html

相关文章

  • 导入BaseMapper依赖需要用到的包
    <!--mp依赖mybatisPlus会自动的维护Mybatis以及MyBatis-spring相关的依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><ver......
  • uniapp中执行完一个方法在执行另一个
    functionrequest(url,data={},method="GET"){ returnnewPromise(function(resolve,reject){   uni.request({     url:url,     data:data,     method:method,     header:{       'Content-Type':'application/json;cha......
  • 安全测试实践-万家APP越权逻辑漏洞挖掘
    逻辑漏洞会导致业务面临着巨大的经济损失隐患与敏感数据泄露的风险,本文从安全测试的角度,以越权逻辑漏洞为例,介绍逻辑漏洞的挖掘方法和实践过程。一、什么是越权逻辑漏洞定义:指由于系统的权限控制逻辑不够严谨,使得系统用户可以访问或操作未授权的数据和功能。包括水平越权和垂直......
  • 「GPT虚拟直播」实战篇二|无人直播间如何接入虚拟人
    摘要虚拟人和数字人是人工智能技术在现实生活中的具体应用,它们可以为人们的生活和工作带来便利和创新。在直播间场景里,虚拟人和数字人可用于直播主播、智能客服、营销推广等。接入GPT的虚拟人像是加了超强buff,具备更强大的自然语言处理能力和智能对话能力,可以实现更加智能化、自然......
  • 开发手记:MyBatis的mapper文件的中SQL符号转义
    字符转义问题在MaBatis的XML文件中编写SQL语句时,<符号会出现转义问题,例如:<!--查询指定月份内的订单--><selectid="queryInRange"resultType="OrderEntity"> SELECT*FROMorder WHEREcreate_time>DATE_SUB(NOW(),INTERVAL#{month}MONTH) ANDuser_i......
  • uniapp专题学习(一)
    为什么要学习uniapp一套代码可以打包到不同的应用平台,一套代码,多端运行;方便入手,就是使用vue语法写小程序,如果有vue和小程序经验的话,甚至直接可以看文档;丰富的生态环境,官方及第三方插件较为丰富,论坛活跃度高。什么是uniappuni-app是一个使用Vue.js开发所有前端应用的框......
  • 要开发代驾App需要以下解决方案
    要开发代驾App,您需要以下解决方案: 1.功能: 确定您的App需要提供哪些功能,例如:需求分析、预约管理、司机找客、实时位置跟踪、支付和评价等。 2.平台: 确定您的App要适配哪些移动平台,例如iOS、Android、或者是WebApp等。 3.设计: 制定您的App设计方案,主要包括用户界......
  • linux系统/dev/mapper/centos-root目录被占满的解决方式
    1、查看虚拟机磁盘使用情况df-h 可以看到/dev/mapper/centos-root已经快满了,这时候就算启动hdfs,也会是强制性的进入安全模式,不让写数据2、查看哪个目录占用过高使用du-h-x--max-depth=1查看哪个目录占用过高,对于过高目录中的内容适当删减腾出一些空间cd/&&du-h......
  • RollingFileAppender[FILE] - openFile(null,true) call failed. java.io.FileNotFoun
          2023-05-2916:25:31[main]ERRORo.s.boot.SpringApplication-Applicationrunfailedjava.lang.IllegalStateException:Logbackconfigurationerrordetected:ERRORinch.qos.logback.core.rolling.RollingFileAppender[FILE]-openFile(null,true)......
  • 语音聊天APP开发流程
     语音聊天APP开发流程如下: 1.需求分析和UI设计: 对客户需求进行沟通和分析,根据需求确定APP的功能、UI设计和交互流程; 2.技术选型和架构设计: 根据需求和功能要求,选择合适的技术和框架,进行APP架构设计; 3.编码和开发: 根据UI设计和架构设计,进行APP编码和开发,实现......