安卓双屏异显的实现

需求:
在做项目时,有一个双屏显示的需求(两个屏幕,在特定情况下,第二个屏幕显示不同内容)。百度一番,发现了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...

发布了33 篇原创文章 · 获赞 20 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/huangwenkui1990/article/details/104048472