Android系统层强制应用根据重感横竖屏显示

需求场景描述

公司生产了一款12.03的学习平板(大部分场景是横屏使用),需要将那些强制竖屏显示的应用,也可以根据重力感应横屏显示 如(如:夸克浏览器)

实现思路

DisplayContent 是 Android 系统中一个重要的类,它在窗口管理器(Window Manager)中扮演着关键的角色。它用于管理一个显示设备上的窗口和界面元素,并负责处理显示相关的操作。以下是

DisplayContent 的主要作用:

  1. 窗口管理: DisplayContent 负责管理一个显示设备上的所有窗口,包括应用窗口、系统窗口、对话框等。它维护窗口的层级、布局、尺寸和可见性等信息。

  2. 窗口层级: 通过 DisplayContent,系统可以确定每个窗口在显示上的层级关系,即哪个窗口位于其他窗口之上或之下。

  3. 窗口布局和尺寸: DisplayContent 确保窗口在显示上正确布局,并根据窗口的尺寸和位置将其渲染到对应的屏幕区域。

  4. 窗口状态管理: 窗口的状态,例如最小化、最大化、活动、非活动等,由 DisplayContent 进行管理和维护。

  5. 窗口交互: 通过 DisplayContent,系统可以响应用户与窗口的交互操作,例如拖动、缩放、点击等。

  6. 窗口动画: DisplayContent 负责处理窗口之间的动画效果,如窗口打开、关闭、切换等动画。

  7. 多显示设备支持: 在多显示设备环境下,每个显示设备都有一个对应的 DisplayContent 实例,用于管理该设备上的窗口和显示操作。

  8. 系统级界面管理: 系统级的界面元素,如状态栏、导航栏等,也由 DisplayContent 进行管理。

  9. 界面刷新: DisplayContent 负责将窗口的内容绘制到显示设备上,以实现界面的刷新和呈现。

  10. 显示设备属性: 通过 DisplayContent,系统可以获取和管理显示设备的属性,如分辨率、方向、DPI等。

DisplayRotation 是 Android 系统中的一个类,它用于管理显示设备的旋转操作。在移动设备中,用户可以旋转设备以适应不同的屏幕方向,例如从竖直方向切换到水平方向。DisplayRotation 负责跟踪显示设备的旋转状态,并通知系统和应用程序相应的变化。以下是

DisplayRotation 的主要作用:

  1. 屏幕旋转管理: DisplayRotation 跟踪用户旋转设备时的操作,包括从横屏切换到竖屏或反之。它记录当前的屏幕方向以及可能的旋转偏好。

  2. 应用程序适应: 应用程序可以根据设备的旋转状态调整其用户界面,以确保在不同方向下都能够正确显示和布局。DisplayRotation 通知应用程序关于设备旋转的信息,从而使应用能够适应不同的方向。

  3. 系统界面适应: 系统级的界面元素,如状态栏和导航栏,也需要根据屏幕方向进行调整。DisplayRotation 负责确保这些界面元素在旋转时的正确呈现。

  4. 触摸事件映射: 屏幕旋转可能会影响触摸事件的坐标映射。DisplayRotation 确保触摸事件在旋转时正确映射到屏幕坐标。

  5. 显示内容旋转: 一些应用或界面元素可能需要以特定的方向显示其内容。DisplayRotation 通过通知应用程序或界面元素的旋转状态,帮助它们调整内容的显示方向。

  6. 用户体验: 通过管理设备的旋转,DisplayRotation 提供了更好的用户体验,使用户可以根据实际需要调整屏幕方向,而不会影响应用的正常运行。

  7. 多显示设备支持: 在多显示设备环境下,每个显示设备可能有不同的旋转状态。DisplayRotation 确保每个显示设备都可以独立进行旋转。

综上理解:屏幕旋转时候,窗口画面横竖屏主要是由DisplayRotation与DisplayContent来控制

实现步骤

1:找到 DisplayContent中的updateOrientation(boolean forceUpdate)的函数发现orientation = getOrientation();

 private boolean updateOrientation(boolean forceUpdate) {
   
        final int orientation 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值