Android多窗口支持
2017-09-05 18:07
267 查看
Android N 添加了对同时显示多个应用窗口的支持。
在手持设备上,两个应用可以在“分屏”模式中左右并排或上下并排显示。
在电视设备上,应用可以使用“画中画”模式,在用户与另一个应用交互的同时继续播放视频。
按 Overview 按钮进入 Overview 界面,然后长按 activity 拖动到界面的提示区域(我的手机是顶部)。
2.第二种方式
在 activity 界面长按 Overview 按钮,如果 activity 没有禁用分屏模式就可以进入分屏界面了。
这种启动方式并没有什么特别的,启动的 activity 如果没有设置其他属性,可正常进入分屏模式。
2.第二种启动方式-START UNRESIZEABLE ACTIVITY(禁用分屏模式)
这个模式中在 AndroidManifest 中加入了
如果不加这条属性,默认是 true,启用分屏模式。
该模式下如果想启动分屏模式会提示
3.第三种启动方式-START ACTIVITY ADJACENT(共享分屏模式)
如果处于分屏模式下,被启动 activity 直接占据屏幕另一半。否则这种启动方式并没有什么不同。
只需要在启动时加入
4.第四种启动方式-START ACTIVITY THAT HANDLES CONFIGURATIONCHANGES(加配置信息)
这种启动方式里在 AndroidManifest 的 configChanges 属性里加入了很多属性。比如禁用横竖屏切换之类的,
如果想仔细了解这些配置可以看
Activity.isInMultiWindowMode()
调用该方法以确认 Activity 是否处于多窗口模式。
Activity.isInPictureInPictureMode()
调用该方法以确认 Activity 是否处于画中画模式。
注:画中画模式是多窗口模式的特例。 如果 myActivity.isInPictureInPictureMode() 返回 true,则 myActivity.isInMultiWindowMode() 也返回 true。
Activity.onMultiWindowModeChanged()
Activity 进入或退出多窗口模式时系统将调用此方法。 在 Activity 进入多窗口模式时,系统向该方法传递 true 值,在退出多窗口模式时,则传递 false 值。
Activity.onPictureInPictureModeChanged()
关于更多关于Android多窗口支持的信息可点击链接查看
最后附上我github稍微翻译了一下的官方demo
在手持设备上,两个应用可以在“分屏”模式中左右并排或上下并排显示。
在电视设备上,应用可以使用“画中画”模式,在用户与另一个应用交互的同时继续播放视频。
如何启动分屏
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类中添加了以下新方法,以支持多窗口显示。Activity.isInMultiWindowMode()
调用该方法以确认 Activity 是否处于多窗口模式。
Activity.isInPictureInPictureMode()
调用该方法以确认 Activity 是否处于画中画模式。
注:画中画模式是多窗口模式的特例。 如果 myActivity.isInPictureInPictureMode() 返回 true,则 myActivity.isInMultiWindowMode() 也返回 true。
Activity.onMultiWindowModeChanged()
Activity 进入或退出多窗口模式时系统将调用此方法。 在 Activity 进入多窗口模式时,系统向该方法传递 true 值,在退出多窗口模式时,则传递 false 值。
Activity.onPictureInPictureModeChanged()
Activity 进入或退出画中画模式时系统将调用此方法。 在 Activity 进入画中画模式时,系统向该方法传递 true 值,在退出画中画模式时,则传递 false 值。
每个方法还有 Fragment 版本,例如 Fragment.isInMultiWindowMode()。关于更多关于Android多窗口支持的信息可点击链接查看
最后附上我github稍微翻译了一下的官方demo
相关文章推荐
- 谷歌反对Android设备支持多窗口 三星一意孤行
- android N - 多窗口支持
- Android N多窗口支持
- 是时候来了解android7了:多窗口支持
- android 7新特性:多窗口支持
- AndroidN多窗口支持
- Android N多窗口支持
- android7新特性:多窗口支持
- 了解android7了:多窗口支持
- android7新特性:多窗口支持
- Android N多窗口支持
- Android n multi-window多窗口支持
- Android 7.0 多窗口支持
- 是时候来了解android7了:多窗口支持
- Android N多窗口支持
- Android 分屏模式-多窗口支持
- android 7.0 多窗口支持
- Android N 多窗口支持
- Android N新特性--多窗口支持
- Android N 多窗口支持