分屏比例最小值修改
android/frameworks/base/core/res/res/values/dimens.xml的值default_minimal_size_resizable_task
注意:这个值只能比220大,因为如果小的话CTS无法通过,因为CTS里面把这个值写死了220(ActivityAndWindowManagersState.java的DEFAULT_RESIZABLE_TASK_SIZE_DP = 220)
横屏支持分屏比例修改
android/frameworks/base/core/res/res/values-land/config.xml的值config_dockedStackDividerSnapMode,竖屏的值是0,横屏是2,所以横屏在创建分屏参数时,不会创建分屏参数。
分屏模式不支持衡竖屏切换
android/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java里面有个updateRotation方法,它时执行衡竖屏切换操作的,只需要在这判断是否处于分屏模式,如果是分屏模式,直接返回即可。
@Override
public void updateRotation(boolean alwaysSendConfiguration, boolean forceRelayout) {
if(DOCKED_INVALID == getDockedStackSide()) {
updateRotationUnchecked(alwaysSendConfiguration, forceRelayout);
}
}
分屏状态下,按下home,分屏会进入最小化,此时如果launcher支持resizeable,则分屏窗口调整到桌面上,桌面大小减小,如果launcher不支持resizeable,则分屏最小化,隐藏到状态栏后边。
第一种情况:
DockedStackDividerController.java控制分屏状态,当DisplayContent通知controller的方法notifyDockedStackExistsChanged时,setMinimizedDockedStack(boolean minimizedDock, boolean animate),这里面会判断当前桌面是否resizeable,然后走向分支:
if (isHomeStackResizable()) {
notifyDockedStackMinimizedChanged(minimizedDock, true /* animate */,
true /* isHomeStackResizable */);
minimizedChange = true;
}
第一种情况如果不支持,就走向下面这种情况
setMinimizedDockedStack(boolean minimized),该方法里面会调用TaskStack的setAdjustedForMinimizedDock,然后层层调用会走到adjustForMinimizedDockedStack方法,mTmpAdjustedBounds控制最小化分屏时的高度大小(状态栏的高度,PhoneWindowManager.java的mDockTop值是statusbar的高度,分屏后的起始位置就是这个值控制)
如何退出分屏
只需要把分屏栈中的task移除,移动到全屏栈即可,比如在systemUI中调用mWindowManagerProxy.dismissDockedStack(),它的实现是
private final Runnable mDismissRunnable = new Runnable() {
@Override
public void run() {
try {
ActivityManager.getService().moveTasksToFullscreenStack(
DOCKED_STACK_ID, false /* onTop */);
} catch (RemoteException e) {
Log.w(TAG, "Failed to remove stack: " + e);
}
}
};
分享到:
相关推荐
总的来说,这份"Android视频播放源码,支持小屏,分屏"涵盖了Android视频播放、屏幕适配、列表播放等多个重要知识点,是学习和研究Android视频播放开发的宝贵资源。通过深入理解并运用这些技术,开发者可以创建出...
在Android系统中,"双屏异显"是指设备拥有两个独立...通过以上知识点,我们可以理解并实现"android 双屏异显demo源码"中的核心功能。这不仅有助于开发出更高效、更个性化的多屏应用,也为提升用户体验打开了新的可能。
以上只是Android 6.0 API中文手册中的一部分关键知识点,实际手册还涵盖了更多的API变更、性能优化策略、安全性改进以及系统服务的使用方法。开发者通过深入学习这本手册,可以全面掌握Android 6.0的开发技术,提升...
本主题将深入探讨对话框的继承、分屏、改变大小、设计字体以及布局等关键知识点。 1. 对话框继承:在面向对象编程中,对话框通常是作为基类(如`Dialog`或`JDialog`)的子类来创建的。通过继承,我们可以获取基类的...
本文将针对"android 7.0 源码下载(24)"这一主题,详细介绍如何获取和研究Android 7.0的源码,以及这个版本中的关键知识点。 首先,下载Android 7.0源码需要遵循AOSP(Android Open Source Project)的官方指南。...
下面,我们将详细探讨这个SDK中的关键知识点。 1. **Android SDK概述** Android Software Development Kit(SDK)是开发者构建Android应用的基础工具集。它包含了开发环境、编译工具、运行时库以及API文档等必备...
《Android SDK与API ...理解并掌握这些知识点,对于Android应用的开发和优化至关重要。通过善用API Level 25的新功能,开发者能够打造出更先进、更符合用户需求的应用,同时也能充分利用Android生态系统的最新优势。
在本文中,我们将深入探讨相关知识点,包括Android系统的多窗口支持、硬件适配以及HDMI和LCD显示技术的应用。 首先,Android系统从API Level 21(Lollipop)开始引入了多窗口模式,允许应用在屏幕上以分屏或浮动小...
在"Android自定义桌面2.0"中,可能包含以下关键知识点: 1. **自定义界面设计**:自定义桌面通常会提供独特的布局、主题、图标样式和过渡动画,让用户可以根据个人喜好定制界面风格。 2. **多窗口支持**:类似于...
### 核心知识点总结 #### 一、核心概念(Part I: Core Concept) ...以上是《Beginning Android 4》一书中涉及的部分关键知识点总结,覆盖了Android开发的基础到进阶的各种主题,适合初学者系统地学习Android开发。
在Android操作系统的发展历程中,Android 7.0(Nougat)和Android 8.0(Oreo)是两个重要的版本,它们带来了...通过学习和掌握Android 7.0和8.0的知识点,开发者可以更好地适应市场需求,创造出更具吸引力的应用程序。
下面我们将详细探讨Android SDK 25.0.0包含的主要知识点。 1. **API Level 25**:Android SDK 25.0.0对应的是API级别25,这是Android Nougat系统的基础。API级别25引入了许多新的特性和功能,例如分屏多任务、通知...
以下是关于Android 7.0 SDK的一些关键知识点: 1. **多窗口模式**:Android 7.0引入了分屏模式,允许用户同时在屏幕上显示两个应用,提升了多任务处理能力。开发者需要适配这一特性,确保应用在多窗口环境下能正常...
本文将深入探讨与“环境android 13 r6-my WMS 资源”相关的知识点,主要关注在Android 13 R6版本中WMS的更新、Task创建以及屏幕1的镜像Task。 首先,我们来看Android 13 R6这一版本的更新。Android 13是Google推出...
以下是关于Android 5.1 (API级别22)的一些关键知识点: 1. **版本特性**:Android 5.1是在5.0基础上的更新,主要提升了性能和稳定性,并引入了一些新功能,如多用户支持、设备管理器、Wi-Fi Direct改进等。 2. **...
本文将深入探讨Android SDK 25中的关键知识点,以帮助开发者更好地理解和利用这一强大的开发平台。 一、Android 7.1 (Nougat) 特性 1. **Split Screen多任务模式**:Android 7.1正式支持分屏模式,允许用户同时...
综上所述,"Android 传说中的3D播放器"涉及的知识点涵盖了3D图形编程、视频解码、UI设计、性能优化等多个方面,而"fabrantes-rockonnggl-b8c8297"可能提供了深入了解这些技术的宝贵资源。无论是对个人开发者还是对...
本文将详细介绍Android 4.4.2 SDK中的核心知识点,帮助开发者深入理解这一版本的特性,提升开发技能。 一、系统更新与特性 1. **ART运行时环境**:Android 4.4.2引入了替代Dalvik的新运行时环境——ART(Android ...
在安卓开发中,ViewPager 是一个非常重要的...以上就是关于"安卓Android源码——ViewPager-实现左右两个屏幕的切换"的主要知识点,通过理解和实践这些内容,开发者可以更好地掌握ViewPager的用法,提升应用的用户体验。
知识点: 1. Android刷机常用命令:在Android设备的刷机操作...以上列举的命令和快捷键涵盖了Android刷机操作、文件传输、以及高效编码所涉及的关键知识点,为IT专业人士在进行相关操作时提供了详细的操作指南和技巧。