双屏异显
日常生活中,有时候会遇到 Android 设备连接两个屏幕进行显示的问题,比如酒店登记信息时,一个屏幕用于员工操作,一个屏幕显示相关信息供顾客查看。这里就涉及到 Android 的双屏异显的问题,实现Android 的双屏异显,Google 也提供了相应的 API方法 Presentation。
流程上来说:
APP:包含window和Surface------关联surfaceFlinger,合成图像-------通过HWC送显,确定展示到哪个图像上
备注:
As的虚拟机可以支持添加多屏模拟
方法一:Presentation
要了解 API 的具体调用,推荐先查看官方的文档:Presentation文档
Android 从4.2开始支持双屏显示,开发时需 minSdkVersion >= 17。Android 连接两个屏幕时,自动分配主屏和副屏,主屏显示正常的Activity 界面,副屏通过创建 Presentation 类来实现。
通过查看 Presentation 继承关系可知,Presentation 继承自 Dialog,创建的时候需要遵循Dialog相关要求。当和 Presentation 相关联的屏幕被移除后,Presentation 也会自动的被移除,所以当 Activity处于 pause 和resume 的状态时,Presentation 也需要特别注意当前显示的内容的状态。
首先要获取屏幕的信息