需求:
在做项目时,有一个双屏显示的需求(两个屏幕,在特定情况下,第二个屏幕显示不同内容)。百度一番,发现了Presentation关键词是实现双屏异显功能的重点。
总结:
Presentation 父类是 dialog,所以和dialog具有相似的属性和方法。
Presentation 的容器是屏幕,创建时即需指定。屏幕移除,则Presentation自动取消。
Presentation 的上下文与包含它的Activity 的上下文不同。
使用方法:
1. 权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
2. 创建双屏显示的类,继承Presentation
public class SecondDislay extends Presentation {
public SecondDislay(Context outerContext, Display display) {
super(outerContext,display);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.seconddisplay);
}
}
3. 显示
DisplayManager mDisplayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE);
Display[] displays = mDisplayManager.getDisplays(); //得到显示器数组
if (displays.length > 1) {
SecondDislay mPresentation = new SecondDislay(this, displays[1]);//displays[1]是副屏
mPresentation.show();
} else {
Toast.makeText(this, "不支持双屏", Toast.LENGTH_SHORT).show();
}
4. 关闭
mPresentation.dismiss();
over...