Android Graphics 显示系统 - VirtualDisplay & mirrorDisplay 简单示例

Life is like a box of chocolates, you never konw what you're going to get。最近我也得到了一块巧克力,迫不及待地想尝一下甜的惊喜 。

前言

上一篇文章,我们分享了一个VirtualDisplay的简单实例,主要是为了引入创建虚拟屏幕都使用了哪些APIs,参考

Android Graphics 显示系统 - VirtualDisplay的初印象 - 简单示例

本篇再补充一点功能:mirrorDisplay

有多屏开发经验的小伙伴,一定知道在开发者选项中可以开启模拟第二屏幕,其实就是创建虚拟屏幕,并对主屏幕做了镜像显示

图片

UI操作按钮太繁琐,可以直接adb/console命令触发:

#创建一块辅助屏显示器

$settings put global overlay_display_devices "1920x1080/320,secure"

#创建两块辅助屏显示器

$settings put global overlay_display_devices "1920x1080/320,secure;1920x1080/320,secure"

#创建三块辅助屏显示器也是类似,以此类推

$settings put global overlay_display_devices "1920x1080/320,secure;1920x1080/320,secure;1920x1080/320,secure"

#关闭辅助屏显示器 

$settings put global overlay_display_devices "none"

secure标记可以不用带,按需!

如果抛开复杂的WMS等上层逻辑,从C++ level怎么去createDisplay与mirrorDisplay呢?

我们就分享个demo实例,达到类似开启Simulate secondary displays的效果。

效果
 

console下执行命令创建虚拟屏幕和主屏幕的镜像,把主屏幕的镜像显示到虚拟屏幕,这样主屏幕和虚拟屏幕就显示同样的内容了。

console # VirtualDisplayDemo -mCreate Virtual Display(layer_stack=99)Press any key to exit, waiting ...

效果如下:

图片

图片

源码下载,阅读原文

Android Graphics 显示系统 - VirtualDisplay & mirrorDisplay 简单示例

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值