【Android双屏异显】如何真正的实现Android双屏异显

最近在做一个Android双屏异显的项目,要实现一台Android设备通过HDMI连接两个显示器,然后在一个App中同时显示两个不同的画面。

标题实际上Android并不存在真正的像Windows一样的双屏异显,Android的双屏异显实际上是将一个View覆盖在了主显(或副显)上,从而实现两个显示器显示不同画面的效果。

在网上查找相关资料,发现基本都是使用 Android 的 Presentation 这个类来实现双屏异显的效果。但是在我的实际使用中效果并不理想。通过查看Prentation类的源码,得知其实际上是一个封装好的Dialog。在使用Presentation过程中,有时会出现无法产生第二画面的问题,各种查找资料无果,无奈智能另寻方法。

所以,我来介绍一个全新,简单,稳定的双屏异显解决方法。该方法只有几行核心代码。很简单,话不多说,我们直接放码过来。( Talk is cheap, show me the code. — Linus )

MediaRouter mediaRouter = (MediaRouter)getSystemService(Context.MEDIA_ROUTER_SERVICE);

MediaRouter.RouteInfo routeInfo = mediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO);

Display secondDisplay = routeInfo.getPresentationDisplay();

WindowManager windowManager = (WindowManager)this.createDisplayContext(secondDisplay).getSystemService(WINDOW_SERVICE);

Context secondDisplayContext = this.createDisplayContext(secondDisplay);

View view = View.inflate(secondDisplayContext, R.layout.viewLayout, null);

windowManager.addView(view, new WindowManager.LayoutParams(2003,3,3));
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值