Android多窗口支持

来源:互联网 发布:矩阵的长度 编辑:程序博客网 时间:2024/06/05 23:57

Android N 添加了对同时显示多个应用窗口的支持。
在手持设备上,两个应用可以在“分屏”模式中左右并排或上下并排显示。
在电视设备上,应用可以使用“画中画”模式,在用户与另一个应用交互的同时继续播放视频。

如何启动分屏

1.第一种方式

按 Overview 按钮进入 Overview 界面,然后长按 activity 拖动到界面的提示区域(我的手机是顶部)。

2.第二种方式

在 activity 界面长按 Overview 按钮,如果 activity 没有禁用分屏模式就可以进入分屏界面了。

解析官方Demo里的几种启动模式

1.第一种启动方式-START BASIC,DEFAULT ACTIVITY(默认的启动方式)

这种启动方式并没有什么特别的,启动的 activity 如果没有设置其他属性,可正常进入分屏模式。

2.第二种启动方式-START UNRESIZEABLE ACTIVITY(禁用分屏模式)

这个模式中在 AndroidManifest 中加入了 android:resizeableActivity=”false” 将禁用分屏,
如果不加这条属性,默认是 true,启用分屏模式。

该模式下如果想启动分屏模式会提示该应用不支持分屏

3.第三种启动方式-START ACTIVITY ADJACENT(共享分屏模式)

如果处于分屏模式下,被启动 activity 直接占据屏幕另一半。否则这种启动方式并没有什么不同。
只需要在启动时加入Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT即可。


4.第四种启动方式-START ACTIVITY THAT HANDLES CONFIGURATIONCHANGES(加配置信息)

这种启动方式里在 AndroidManifest 的 configChanges 属性里加入了很多属性。比如禁用横竖屏切换之类的,
如果想仔细了解这些配置可以看

多窗口变更通知和查询

Activity类中添加了以下新方法,以支持多窗口显示。

  1. Activity.isInMultiWindowMode()
    调用该方法以确认 Activity 是否处于多窗口模式。

  2. Activity.isInPictureInPictureMode()
    调用该方法以确认 Activity 是否处于画中画模式。

    • 注:画中画模式是多窗口模式的特例。 如果 myActivity.isInPictureInPictureMode() 返回 true,则 myActivity.isInMultiWindowMode() 也返回 true。
  3. Activity.onMultiWindowModeChanged()
    Activity 进入或退出多窗口模式时系统将调用此方法。 在 Activity 进入多窗口模式时,系统向该方法传递 true 值,在退出多窗口模式时,则传递 false 值。

  4. Activity.onPictureInPictureModeChanged()

Activity 进入或退出画中画模式时系统将调用此方法。 在 Activity 进入画中画模式时,系统向该方法传递 true 值,在退出画中画模式时,则传递 false 值。

每个方法还有 Fragment 版本,例如 Fragment.isInMultiWindowMode()。


关于更多关于Android多窗口支持的信息可点击链接查看


最后附上我github稍微翻译了一下的官方demo

原创粉丝点击