android - 如何切换Android SurfaceView实现双摄像头缩放效果?
问题描述
我按照Android 的教程创建了一个包含多个物理相机的捕获会话。根据文章,我创建了两个SurfaceView
s来实现缩放效果。
如果我SurfaceView
在布局中显示两个 s,就没有问题:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout android:layout_height="match_parent"
android:layout_width="match_parent">
<android.view.SurfaceView
android:id="@+id/sf1"
android:layout_width="match_parent"
android:layout_height="400dp"
/>
<android.view.SurfaceView
android:id="@+id/sf2"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_gravity="bottom"/>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
但是,如果两个SurfaceView
s 都是全屏的(一个可见,另一个不可见),我无法通过双击事件切换它们。这是我尝试过的代码:
fun toggleView() {
if (isOnTop) {
isOnTop = false
sv1.setZOrderMediaOverlay(true)
sv2.setZOrderMediaOverlay(false)
// sv1.setZOrderOnTop(true)
// sv2.setZOrderOnTop(false)
// sv1.visibility = View.VISIBLE
// sv2.visibility = View.INVISIBLE
}
else {
isOnTop = true
sv2.setZOrderMediaOverlay(true)
sv1.setZOrderMediaOverlay(false)
// sv2.setZOrderOnTop(true)
// sv1.setZOrderOnTop(false)
// sv1.visibility = View.INVISIBLE
// sv2.visibility = View.VISIBLE
}
}
如何SurfaceView
正确切换 s 以实现缩放效果?
解决方案
推荐阅读
- python-3.x - 有没有办法限制 Selenium Chromedriver 的并发请求线程?
- javascript - React 和 jquery-ui/ui/widgets/sortable:子组件未按预期重新排序
- python - 如何使用 Python 检查字符串是否是有效的 shell 命令?
- user-agent - 无需进入管理面板即可播放 SHOUTcast DNAS
- python - 为什么我在尝试启动 KNeighbors 分类器时不断收到导入错误?
- powershell - 创建Powershell菜单项并在菜单项中调用函数
- vba - 切换 FROM 收件箱
- python-3.x - Python - 排序列表 - 函数
- sql-server - 数据质量服务清理活动的问题
- django - 是否有 Django 模板的代码格式化程序?