在相机预览之上崩溃动画

时间:2017-11-29 13:37:39

标签: android animation android-camera2

使用相机预览设置动画时,我会崩溃。

跟踪如下:

  

D / OpenGLRenderer:0x702565a400(RippleDrawable)上的endAllActiveAnimators,句柄为0x701d23cc60

     

D / AndroidRuntime:关闭VM

     

致命异常:java.lang.IllegalStateException:指定的消息队列同步障碍标记尚未发布或已被删除。          在android.os.MessageQueue.removeSyncBarrier(MessageQueue.java:512)          在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1248)          在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6338)          在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:874)          在android.view.Choreographer.doCallbacks(Choreographer.java:686)          在android.view.Choreographer.doFrame(Choreographer.java:621)          在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:860)          在android.os.Handler.handleCallback(Handler.java:751)          在android.os.Handler.dispatchMessage(Handler.java:95)          在android.os.Looper.loop(Looper.java:154)          在android.app.ActivityThread.main(ActivityThread.java:6121)          在java.lang.reflect.Method.invoke(Method.java)          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:889)          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

我使用Googles示例实现了相机预览,在预览的顶部有“自动对焦”椭圆形,使用animate()方法和alpha进行动画显示/隐藏。

1 个答案:

答案 0 :(得分:0)

当从相机预览中获得回调时,我并没有强迫线程成为主线。

 private Handler mAutoFocusHandler = new Handler(Looper.getMainLooper());

使用此Handler发布Runnable动画自动对焦的位置可解决此问题。

注意:请务必检查您是否在UI线程上设置自己的观看动画,因为View.animate()似乎在从相机后台线程启动时起作用,但偶尔会使应用程序崩溃。