最近在做收银机相关的开发,涉及到双屏异显
的一些东西,之前也没有接触过,在查阅一番资料之后,把功能走通了,这里小记一下。
Presentation
Presentation 是一种特殊的对话框,主要用于在另外一块屏幕上显示内容。默认为克隆模式,即副屏显示和正屏一样的内容。当需要显示不同内容时,需要自定义 Presentation,并为其指定一个 Display。这里随便定义一个 Presentation:
1 | public class MyPresentation extends Presentation { |
声明权限
因为 Presentation 是对话框,所以需要以下权限:
1 | <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> |
获取 Displays
在实例化 Presentation 之前需要先获取 Displays。
1 | private void initDisplays() { |
mDisplays 即代表设备所有的屏幕。
实例化 Presentation
1 | private void initPresentation() { |
通过 show() 方法即可展示了。
Tips
- 双屏需要
API >= 17
才可使用。 - 需要兼容只有一块屏幕的设备。所以在展示时,最好加上
mDisplays.length > 1
的判断,避免在单屏设备上展示了副屏要展示的内容。 - 直接在 Activity onCreate 中初始化进行展示时,会展示不了,需要延迟一点进行展示。