使用相机预览为视图设置动画时,我崩溃了。
跟踪如下:
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:
我已经使用Google的示例实现了相机预览,并且在预览的顶部还有一个“自动对焦”椭圆形,使用animate()
方法和Alpha可以对其进行动画可见/隐藏。
原来,从摄像机预览中获取回调时,我并没有强迫线程成为main。
private Handler mAutoFocusHandler = new Handler(Looper.getMainLooper());
使用此Handler
功能发布Runnable
动画动画的位置可以解决此问题。
注意:确保检查自己是否对UI线程具有动画效果,因为View.animate()
从相机背景线程启动时似乎可以正常工作,但偶尔会导致应用程序崩溃。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句