无法执行位于 SurfaceView 之上的视图的动画
Cannot perform animations of a view which is on top of a SurfaceView
之前,我已经开发了一个库来方便相机的使用API:Camerakit。我最近正在用这个库开发一个新项目,我想在相机预览(扩展 SurfaceView)的顶部执行动画,我发现当我将以下代码添加到我的应用程序时,视图的动画不是使用相机预览时表现良好,但在没有相机预览时表现良好。
// MainActivity.class
capture.animate().yBy(2000).setDuration(10000).start();
有没有办法解决这个问题?
我在使用 android 和 Unity.Then 编码时遇到了这个问题 我通过在 Z 轴方向上设置 SurfaceView 的级别解决了这个问题。众所周知,SurfaceView是在shell.Maybe上面绘制的view,你可以得到SurfaceView的实例,然后在view.like下面设置这个:((SurfaceView)child).setZOrderOnTop(false);
所以,其实动画已经run.It刚好被SurfaceView覆盖了
我终于明白了。通过将 SurfaceView
的预览组件更改为 TextureView
可以解决此问题。现在我可以在相机预览中叠加任何动画。
我还在 Github 上更新了我的代码。
This commit reproduces the issue. And this one 解决了。
在自定义相机上玩动画相机控制 activity 我也 运行 遇到了这个问题。我的相机控件会在相机视图上的动画中几乎 运行dom 点处被切断。在玩了几个小时并尝试了 Z 排序之后,对我有用的是添加一个带有背景颜色的全尺寸子视图(t运行sparent 工作正常!)。不确定视图的顺序是否重要(我把它放在正确的位置 before/above 我想设置动画的视图)。
之前,我已经开发了一个库来方便相机的使用API:Camerakit。我最近正在用这个库开发一个新项目,我想在相机预览(扩展 SurfaceView)的顶部执行动画,我发现当我将以下代码添加到我的应用程序时,视图的动画不是使用相机预览时表现良好,但在没有相机预览时表现良好。
// MainActivity.class
capture.animate().yBy(2000).setDuration(10000).start();
有没有办法解决这个问题?
我在使用 android 和 Unity.Then 编码时遇到了这个问题 我通过在 Z 轴方向上设置 SurfaceView 的级别解决了这个问题。众所周知,SurfaceView是在shell.Maybe上面绘制的view,你可以得到SurfaceView的实例,然后在view.like下面设置这个:((SurfaceView)child).setZOrderOnTop(false);
所以,其实动画已经run.It刚好被SurfaceView覆盖了
我终于明白了。通过将 SurfaceView
的预览组件更改为 TextureView
可以解决此问题。现在我可以在相机预览中叠加任何动画。
我还在 Github 上更新了我的代码。
This commit reproduces the issue. And this one 解决了。
在自定义相机上玩动画相机控制 activity 我也 运行 遇到了这个问题。我的相机控件会在相机视图上的动画中几乎 运行dom 点处被切断。在玩了几个小时并尝试了 Z 排序之后,对我有用的是添加一个带有背景颜色的全尺寸子视图(t运行sparent 工作正常!)。不确定视图的顺序是否重要(我把它放在正确的位置 before/above 我想设置动画的视图)。