Android7.0分屏功能
Android-多窗口
Google_MultiWindowPlayground
多窗口支持
Android N 添加了对同时显示多个应用窗口的支持。
在手持设备上,两个应用可以在“分屏”模式中左右并排或上下并排显示。
在电视设备上,应用可以使用“画中画”模式,在用户与另一个应用交互的同时继续播放视频。
如果您使用 N Preview SDK 构建应用,则可以配置应用处理多窗口显示的方法。 例如,您可以指定 Activity 的最小允许尺寸。 您还可以禁用应用的多窗口显示,确保系统仅以全屏模式显示应用。
分屏显示的情况下,按住中间区域是可以调整应用所占的宽度的。
多窗口生命周期
多窗口模式不会更改 Activity 生命周期。
在多窗口模式中,在指定时间只有最近与用户交互过的 Activity 为活动状态。 该 Activity 将被视为顶级 Activity。 所有其他 Activity 虽然可见,但均处于暂停状态。 但是,这些已暂停但可见的 Activity 在系统中享有比不可见 Activity 更高的优先级。 如果用户与其中一个暂停的 Activity 交互,该 Activity 将恢复,而之前的顶级 Activity 将暂停。
针对多窗口模式配置应用
android:resizeableActivity
在清单的 或 节点中设置该属性,启用或禁用多窗口显示:
android:resizeableActivity=[“true” | “false”]
如果该属性设置为 true,Activity 将能以分屏和自由形状模式启动。 如果此属性设置为 false,Activity 将不支持多窗口模式。 如果该值为 false,且用户尝试在多窗口模式下启动 Activity,该 Activity 将全屏显示。
如果您的应用面向 Android N,但未对该属性指定值,则该属性的值默认设为 true。
注意:根 Activity 的属性设置适用于其任务栈中的所有 Activity
android:supportsPictureInPicture
在清单文件的 节点中设置该属性,指明 Activity 是否支持画中画显示。 如果 android:resizeableActivity 为 false,将忽略该属性。
android:supportsPictureInPicture=[“true” | “false”]
布局属性
对于 Android N, 清单元素支持以下几种属性,这些属性影响 Activity 在多窗口模式中的行为:
android:defaultWidth
以自由形状模式启动时 Activity 的默认宽度。
android:defaultHeight
以自由形状模式启动时 Activity 的默认高度。
android:gravity
以自由形状模式启动时 Activity 的初始位置。请参阅 Gravity 参考资料,了解合适的值设置。
android:minimalHeight、android:minimalWidth
分屏和自由形状模式中 Activity 的最小高度和最小宽度。 如果用户在分屏模式中移动分界线,使 Activity 尺寸低于指定的最小值,系统会将 Activity 裁剪为用户请求的尺寸。
例如,以下节点显示了如何指定 Activity 在自由形状模式中显示时 Activity 的默认大小、位置和最小尺寸:
<activity android:name=".MyActivity"><layout android:defaultHeight="500dp"android:defaultWidth="600dp"android:gravity="top|end"android:minimalHeight="450dp"android:minimalWidth="300dp" />
</activity>
在多窗口模式中运行应用
Android N 添加了新功能,以支持可在多窗口模式中运行的应用。
多窗口模式中被禁用的功能
在设备处于多窗口模式中时,某些功能会被禁用或忽略,因为这些功能对与其他 Activity 或应用共享设备屏幕的 Activity 而言没有意义。 此类功能包括:
某些系统 UI 自定义选项将被禁用;例如,在非全屏模式中,应用无法隐藏状态栏。
系统将忽略对 android:screenOrientation 属性所作的更改。
多窗口变更通知和查询
Activity 类中添加了以下新方法,以支持多窗口显示。 有关各方法的详细信息,请参阅 N Preview SDK 参考。
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()。
进入画中画模式
如需在画中画模式中启动 Activity,请调用新方法 Activity.enterPictureInPictureMode()。 如果设备不支持画中画模式,则此方法无效。 如需了解详细信息,请参阅画中画文档。
在多窗口模式中启动新 Activity
在启动新 Activity 时,用户可以提示系统如果可能,应将新 Activity 显示在当前 Activity 旁边。 要执行此操作,可使用标志 Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT。 传递此标志将请求以下行为:
如果设备处于分屏模式,系统会尝试在启动系统的 Activity 旁创建新 Activity,这样两个 Activity 将共享屏幕。 系统并不一定能实现此操作,但如果可以,系统将使两个 Activity 处于相邻的位置。
如果设备不处于分屏模式,则该标志无效。
如果设备处于自由形状模式,则在启动新 Activity 时,用户可通过调用 ActivityOptions.setLaunchBounds() 指定新 Activity 的尺寸和屏幕位置。 如果设备不处于多窗口模式,则该方法无效。
注:如果您在任务栈中启动 Activity,该 Activity 将替换屏幕上的 Activity,并继承其所有的多窗口属性。 如果要在多窗口模式中以单独的窗口启动新 Activity,则必须在新的任务栈中启动此 Activity。
支持拖放
用户可以在两个 Activity 共享屏幕的同时在这两个 Activity 之间拖放数据 (在此之前,用户只能在一个 Activity 内部拖放数据)。 因此,如果您的应用目前不支持拖放功能,您可以在其中添加此功能。
N Preview SDK 扩展了 android.view 软件包,以支持跨应用拖放。 有关以下类和方法的详细信息,请参阅 N Preview SDK 参考。
android.view.DropPermissions
令牌对象,负责指定对接收拖放数据的应用授予的权限。
View.startDragAndDrop()
View.startDrag() 的新别名。要启用跨 Activity 拖放,请传递新标志 View.DRAG_FLAG_GLOBAL。 如需对接收拖放数据的 Activity 授予 URI 权限,可根据情况传递新标志 View.DRAG_FLAG_GLOBAL_URI_READ 或 View.DRAG_FLAG_GLOBAL_URI_WRITE。
View.cancelDragAndDrop()
取消当前正在进行的拖动操作。只能由发起拖动操作的应用调用。
View.updateDragShadow()
替换当前正在进行的拖动操作的拖动阴影。只能由发起拖动操作的应用调用。
Activity.requestDropPermissions()
请求使用 DragEvent 中包含的 ClipData 传递的内容 URI 的权限
简单配置代码
build.gradle文件
android {compileSdkVersion 24buildToolsVersion '23.0.3'defaultConfig {applicationId "com.android5"minSdkVersion 24targetSdkVersion 24versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}
清单文件:
<activity
android:name=".ScrollingActivity"android:resizeableActivity="true"android:label="@string/app_name"><!--<layoutandroid:defaultWidth="200dp"android:defaultHeight="200dp"android:gravity="top|end"android:minWidth="50dp"android:minHeight="50dp"></layout>--><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
效果图:
Android7.0分屏功能相关推荐
- android分屏模式_安卓 7.0 分屏功能详解:三种模式,想分就分
IT之家讯 8月18日消息,安卓7.0的一大特色就是自带全新分屏功能,分为多画面显示模式.画中画模式和自由分屏模式三种,本文将详细介绍这三种模式. 多画面显示模式 启动该模式的方法有两种,一是在后台应 ...
- Android7.0 分屏多窗口
Android N 添加了对同时显示多个应用窗口的支持. 在手持设备上,两个应用可以在"分屏"模式中左右并排或上下并排显示. 在电视设备上,应用可以使用"画中画" ...
- android分屏资源适配,android7.0分屏适配
版权声明:本文为原创文章,未经允许不得转载! 一.分屏 进入分屏模式:Android N允许用户一次在屏幕中使用两个App.用户可以左右并排/上下摆放两个App来使用,还可以左右/上下拖拽中间的分割线 ...
- android6.0分屏插件,xposed分屏模块安卓6.0下载
安卓6.0系统分屏软件(xposed分屏插件)是一款支持分屏多任务软件,具有多窗口/双窗口功能,在众多智能分屏app中算是比较好用的啦,推荐给有需要的用户下载使用! 安卓6.0多窗口分屏软件简介 XH ...
- 小米android 7 分屏,官方确认!小米手机分屏功能7月上线:支持多款机型
今天下午的新品发布会,小米发布了第二代大屏续航手机小米Max 2,采用6.44英寸大屏.5300mAh容量电池(支持给其它设备充电),主摄像头使用了和小米6一样的索尼IM386传感器.售价方面,,4G ...
- 小米android n 分屏,小米官方确认这几款手机都支持分屏功能
原标题:小米官方确认这几款手机都支持分屏功能 [手机中国 新闻]随着MIUI 9的发布,让很多小米手机用户欣喜若狂.有些遗憾的是,本以为分屏功能会是标配,可即便是升级了MIUI 9,也只有部分机型能够 ...
- android6 miui9分屏,小米官方确认!这些手机都支持分屏功能
2017 年 7 月 26 日,小米在北京召开发布会,连同旗下新机一起发布了 MIUI 9,以 " 快如闪电 " 为设计宗旨,除此之外还发布了许多新功能,官方称,MIUI 分屏模式 ...
- arcgis 实现分屏功能
arcgis 实现分屏功能 利用arcgis api for javascript 4.16地图服务,实现地图分屏 <html><head><meta charset=& ...
- 谈谈Edge浏览器新出的分屏功能
谈谈Edge浏览器新出的分屏功能 前言 在 2023 年三月份微软为 Microsoft Edge 浏览器的稳定版本带来了一个新功能 -- 分屏浏览 (Split Screen),此功能允许用户在 ...
最新文章
- CSS-用伪元素制作小箭头(轮播图的左右切换btn)
- Python中的sort() key含义
- Java之基础(1) - 编程中“为了性能”尽量要做到的一些地方
- 【干货】eval函数用法解释及对开发者的便利讲解
- Python小游戏(并夕夕版飞机大战)
- CentOS7.2.1511 安装Mysql-5.7.13
- Rxjs的flatMap使用
- 游侠怎么设置java路径_Java获取当前路径的代码
- opencv 从原始的图像中找出ROI区域
- 华东理工大学和暨南大学计算机考研,2016华东理工大学VS暨南大学 孰强孰弱?...
- es的node内存设置
- Apache Kylin 入门 1 - 基本概念
- python爬取妹子图片1_利用爬虫爬取清纯妹子图片
- python酷q机器人_NoneBot+酷Q,打造QQ机器人
- 路由器DNS根域名解析失败
- 用for循环打印输出数据三角形图形
- excel单元格内容拆分_Excel分列解决不了的问题,VBA轻松搞定之拆分单元格
- python docx 提取图片_Python提取docx文档中所有嵌入式图片和浮动图片
- BeanCopy和BeanCopier在实际开发中的使用(属性copy效率优化)
- 批量提交网站url到百度进行提升索引量的方法