SurfaceView 第一次闪烁屏幕 - Android

SurfaceView blinks the screen for first time - Android

我想使用 SurfaceView 进行动画显示实时相机预览。它工作正常。但是当它第一次加载时它第一次闪烁。

这是 android 表面视图的常见问题。

Window 在添加 SurfaceView 时被销毁然后重新创建,同时 Window 的像素格式发生了变化,这引导我找到了答案,像素格式SurfaceView 和 Activity 不同,所以 Window 管理器强制重新创建。

为了解决这个问题,只在onCreate()中添加了一行来设置像素格式,如下:

getWindow().setFormat(PixelFormat.TRANSLUCENT);

在 activity 的第一个布局中添加一个 0px 高度的空白 surfaceView 可能会解决这个问题。这是一个疯狂的解决方案,但它解决了我的问题。

您还可以查看以下查询,其中有完整的答案说明。 “SurfaceView flashes black on load