private final List<CameraPreviewHolder> cameraPreviewHolderList = new ArrayList<>(2);cameraPreviewHolderList.get(1).toSecondary();//用较小尺寸创造副屏public boolean onKeyDown(int keyCode, KeyEvent event) {AppLogger.e("keyCode=" + keyCode + ", event=" + event.getAction());if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN ||keyCode == KeyEvent.KEYCODE_DPAD_LEFT ||keyCode == KeyEvent.KEYCODE_DPAD_UP ||keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {long diff = System.currentTimeMillis() - lastExchangeTime;if (this.deviceCount == 2 && diff >= 5000 && this.cameraPreviewList.size() > 0) {synchronized (this.cameraPreviewList) {this.lastExchangeTime = System.currentTimeMillis();// 交换主副屏exchangeCameraPreview();}}return true;}return super.onKeyDown(keyCode, event);}private void exchangeCameraPreview() {final int previewSize = this.cameraPreviewList.size();final CameraPreviewHolder primaryHolder = cameraPreviewHolderList.get(0);final CameraPreviewHolder secondaryHolder = cameraPreviewHolderList.get(1);if (previewSize == 1) {final CameraPreview cameraPreview = this.cameraPreviewList.get(0);cameraPreview.stop();if (primaryHolder.videoShowing()) {primaryHolder.hideVideo();cameraPreview.play(secondaryHolder.getSurfaceView());secondaryHolder.showVideo();} else {secondaryHolder.hideVideo();cameraPreview.play(primaryHolder.getSurfaceView());primaryHolder.showVideo();}} else if (previewSize == 2) {final CameraPreview primaryPreview = this.cameraPreviewList.get(0);final CameraPreview secondaryPreview = this.cameraPreviewList.get(1);primaryPreview.stop();secondaryPreview.stop();if (primaryPreview.getSurfaceView() == primaryHolder.getSurfaceView()) {primaryPreview.play(secondaryHolder.getSurfaceView());secondaryPreview.play(primaryHolder.getSurfaceView());} else {primaryPreview.play(primaryHolder.getSurfaceView());secondaryPreview.play(secondaryHolder.getSurfaceView());}}}public void toSecondary() {if (this.surfaceView == null) {return;}int height = (int) (Settings.DISPLAY_HEIGHT * 0.3);int width = (int) ((16 / 9.0) * height);AppLogger.e("DISPLAY_HEIGHT=" + Settings.DISPLAY_HEIGHT + ", height=" + height + ", width=" + width);FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height);params.topMargin=6;params.leftMargin=6;this.surfaceView.setLayoutParams(params);this.surfaceView.getHolder().setFixedSize(width, height);this.surfaceView.setZOrderMediaOverlay(true);this.surfaceView.setZOrderOnTop(true);if (this.noVideoView != null) {this.noVideoView.setLayoutParams(new FrameLayout.LayoutParams(width, height));ImageView imageView=noVideoView.findViewById(R.id.no_video);RelativeLayout.LayoutParams rlparams = new RelativeLayout.LayoutParams(120, 120);rlparams.addRule(RelativeLayout.CENTER_IN_PARENT);imageView.setLayoutParams(rlparams);}}

Android TV 遥控器切换主副屏相关推荐

  1. linux切换主副屏,ubuntu设置主屏和副屏

    作为一个程序员,从开始使用双屏之后,一个显示屏开发,那种感觉,就是不好.好吧,刚换到ubuntu,笔记本一个显示屏,外接了一个HDMI的显示器,由于书桌的位置,只有把HDMI的显示屏放在笔记本的左边. ...

  2. Ubuntu 双屏显示设置方法--主副屏、复制、扩展、只显示副屏

    查看当前连接屏幕信息 xrandr 显示信息如下: 我这里笔记本屏为eDP-1-1,外接屏为HDMI-1-1 复制屏幕 xrandr --output HDMI-1-1 --same-as eDP-1 ...

  3. MFC中主副屏窗口全屏最大化的几种方法

    MFC中主副屏窗口全屏最大化的几种方法 1.根据鼠标位置判断全屏位置 枚举所有窗口 CArray<MONITORINFO, MONITORINFO&> g_arrMonitorIn ...

  4. [RK3568 Android11] 教程之双屏异显指定主副屏

    目录 一.双屏异显前提 二.指定主副屏 三.双MIPI主副屏配置 一.双屏异显前提 在指定双屏异显主副屏前,说明下双屏显示:底层需要分别调试好双屏都能正常显示,并且都分别挂载在不同的VP上:      ...

  5. android 副屏,安卓收银机双屏(副屏)异显,主副屏通讯

    更新记录 1.0.3(2021-04-29) 1.兼容Android 8.0. 1.0.1(2020-12-08) 测试机型商米D1是,安卓版本7.1.2 查看更多 平台兼容性 Android iOS ...

  6. android双屏异显获取副屏参数,Android 双屏 异显 插件 双屏(副屏)异显,主副屏通讯...

    更新记录 1.2.0(2021-04-12) 优化副屏视频播放功能. 1.1.0(2020-07-01) 新增,视频列表播放,可以在副屏播放一些广告视频等等. 查看更多 平台兼容性 Android i ...

  7. android 多屏幕显示activity,副屏,无线投屏

    目录 1. 首先,需要一个副屏 1. 1 可以通过代码的形式自己创建VirtualDispaly ,创建副屏. 1.2 或者,在手机的开发者模式中直接开启模拟副屏,也是可以的. 2.0 怎么利用这个副 ...

  8. Android应用双开供系统在主副屏展示使用总结及问题总结

    项目中用到了双屏,需要我们做跳转处理. 总结了一下: Demo代码总结与问题总结 一.新建三个module 二.library modles(即app包)中Gradle Scripts中把原本的app ...

  9. android+tv+自动切换,Android TV 重写GridView,实现焦点放大效果

    关于缩放,使用了view.setScaleX/Y 方法,api11以上即可. 重写dispatchDraw(),绘制选中项的焦点效果.(注意带阴影的焦点图需要微调偏移量) 要将选中项绘制显示在顶层,所 ...

最新文章

  1. Mp3写入专辑图片(Kotlin)
  2. 《孙鑫老师谈如何学好编程》摘要
  3. 如何处理Android Studio 上面关于 update 和 commit 小箭头的消失
  4. antd的 input有下拉_antd select下拉添加全选的按钮
  5. 冷藏温度范围_食品冷藏冷冻温度要求与管理规范
  6. ethercat 网卡不兼容_曾经的洋垃圾万兆网卡无人问津因为一张转接卡如今身价暴涨数十倍...
  7. Python字符串| isdecimal()方法与示例
  8. 不管你挣多少钱永远都是问题
  9. PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
  10. cordova-plugin-alipay-v2使用篇(更新至20170725)(亲测可用)
  11. Installation openQRM
  12. cookie实现上次访问时间
  13. 程序员来聊一聊信用卡(二)——对信用卡的一些基本认识
  14. (13) IFC格式说明 (Industry Foundation Class)
  15. 中国大学慕课《数据挖掘与python实践》期末测验版本3
  16. CJOJ 1659 【中学高级本】倒酒
  17. 连续仨月霸占牛客榜首,京东T8呕心巨作:700页JVM虚拟机实战手册
  18. AutoLayout Label 自适应宽高
  19. 12.13 Daily Scrum
  20. Swift语言和其他计算机语言的比较

热门文章

  1. 产品管理的兴起:苹果熟了吗?
  2. Kerberos认证协议中TGS服务器可以去掉吗?
  3. python能制作游戏吗_如何用python写一个小游戏
  4. (转)C# 使用UDP组播实现局域网桌面共享
  5. 世界上最奢华的酒店唯一一座七星级宾馆
  6. 只让QQ主界面变成透明皮肤,其他地方都不变
  7. vmware workstation的镜像文件下载
  8. 2021智能营销领域最具商业合作价值企业盘点
  9. 旅游联盟链源码--蚁从联盟链系统开发功能以及源码分享
  10. 毕业论文总算告一段落了