`
zhy20045923
  • 浏览: 157442 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android 分屏相关知识点

 
阅读更多
分屏比例最小值修改
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系统中,"双屏异显"是指设备拥有两个独立...通过以上知识点,我们可以理解并实现"android 双屏异显demo源码"中的核心功能。这不仅有助于开发出更高效、更个性化的多屏应用,也为提升用户体验打开了新的可能。

    Android6.0API中文手册CHM版

    以上只是Android 6.0 API中文手册中的一部分关键知识点,实际手册还涵盖了更多的API变更、性能优化策略、安全性改进以及系统服务的使用方法。开发者通过深入学习这本手册,可以全面掌握Android 6.0的开发技术,提升...

    对话框继承、分屏、改变大小、设计字体、布局

    本主题将深入探讨对话框的继承、分屏、改变大小、设计字体以及布局等关键知识点。 1. 对话框继承:在面向对象编程中,对话框通常是作为基类(如`Dialog`或`JDialog`)的子类来创建的。通过继承,我们可以获取基类的...

    android 7.0 源码下载(24)

    本文将针对"android 7.0 源码下载(24)"这一主题,详细介绍如何获取和研究Android 7.0的源码,以及这个版本中的关键知识点。 首先,下载Android 7.0源码需要遵循AOSP(Android Open Source Project)的官方指南。...

    android-24 sdk resource codes

    下面,我们将详细探讨这个SDK中的关键知识点。 1. **Android SDK概述** Android Software Development Kit(SDK)是开发者构建Android应用的基础工具集。它包含了开发环境、编译工具、运行时库以及API文档等必备...

    android-25.rar

    《Android SDK与API ...理解并掌握这些知识点,对于Android应用的开发和优化至关重要。通过善用API Level 25的新功能,开发者能够打造出更先进、更符合用户需求的应用,同时也能充分利用Android生态系统的最新优势。

    android双屏显示demo

    在本文中,我们将深入探讨相关知识点,包括Android系统的多窗口支持、硬件适配以及HDMI和LCD显示技术的应用。 首先,Android系统从API Level 21(Lollipop)开始引入了多窗口模式,允许应用在屏幕上以分屏或浮动小...

    Android自定义桌面2.0

    在"Android自定义桌面2.0"中,可能包含以下关键知识点: 1. **自定义界面设计**:自定义桌面通常会提供独特的布局、主题、图标样式和过渡动画,让用户可以根据个人喜好定制界面风格。 2. **多窗口支持**:类似于...

    Beginning Android 4

    ### 核心知识点总结 #### 一、核心概念(Part I: Core Concept) ...以上是《Beginning Android 4》一书中涉及的部分关键知识点总结,覆盖了Android开发的基础到进阶的各种主题,适合初学者系统地学习Android开发。

    android7~8

    在Android操作系统的发展历程中,Android 7.0(Nougat)和Android 8.0(Oreo)是两个重要的版本,它们带来了...通过学习和掌握Android 7.0和8.0的知识点,开发者可以更好地适应市场需求,创造出更具吸引力的应用程序。

    Android-SDK25.0.0

    下面我们将详细探讨Android SDK 25.0.0包含的主要知识点。 1. **API Level 25**:Android SDK 25.0.0对应的是API级别25,这是Android Nougat系统的基础。API级别25引入了许多新的特性和功能,例如分屏多任务、通知...

    android SDK 24 android 7版

    以下是关于Android 7.0 SDK的一些关键知识点: 1. **多窗口模式**:Android 7.0引入了分屏模式,允许用户同时在屏幕上显示两个应用,提升了多任务处理能力。开发者需要适配这一特性,确保应用在多窗口环境下能正常...

    环境android 13 r6-my WMS 资源

    本文将深入探讨与“环境android 13 r6-my WMS 资源”相关的知识点,主要关注在Android 13 R6版本中WMS的更新、Task创建以及屏幕1的镜像Task。 首先,我们来看Android 13 R6这一版本的更新。Android 13是Google推出...

    android-22

    以下是关于Android 5.1 (API级别22)的一些关键知识点: 1. **版本特性**:Android 5.1是在5.0基础上的更新,主要提升了性能和稳定性,并引入了一些新功能,如多用户支持、设备管理器、Wi-Fi Direct改进等。 2. **...

    android-25

    本文将深入探讨Android SDK 25中的关键知识点,以帮助开发者更好地理解和利用这一强大的开发平台。 一、Android 7.1 (Nougat) 特性 1. **Split Screen多任务模式**:Android 7.1正式支持分屏模式,允许用户同时...

    Android 传说中的3D播放器

    综上所述,"Android 传说中的3D播放器"涉及的知识点涵盖了3D图形编程、视频解码、UI设计、性能优化等多个方面,而"fabrantes-rockonnggl-b8c8297"可能提供了深入了解这些技术的宝贵资源。无论是对个人开发者还是对...

    android-19.rar

    本文将详细介绍Android 4.4.2 SDK中的核心知识点,帮助开发者深入理解这一版本的特性,提升开发技能。 一、系统更新与特性 1. **ART运行时环境**:Android 4.4.2引入了替代Dalvik的新运行时环境——ART(Android ...

    安卓Android源码——ViewPager-实现左右两个屏幕的切换.zip

    在安卓开发中,ViewPager 是一个非常重要的...以上就是关于"安卓Android源码——ViewPager-实现左右两个屏幕的切换"的主要知识点,通过理解和实践这些内容,开发者可以更好地掌握ViewPager的用法,提升应用的用户体验。

    android刷机常用命令

    知识点: 1. Android刷机常用命令:在Android设备的刷机操作...以上列举的命令和快捷键涵盖了Android刷机操作、文件传输、以及高效编码所涉及的关键知识点,为IT专业人士在进行相关操作时提供了详细的操作指南和技巧。

Global site tag (gtag.js) - Google Analytics