自定义相机的SurfaceView 中由于surfaceChanged()方法多次调用,导致在此方法中设置相机预览图闪烁

通过SurfaceView来显示相机的预览图,在surfaceChanged()中来设置预览图的纵横比。但是当SurfaceView所在的FrameLayout发生变化时(我加入了一个PreferenceFragment),SurfaceView会发生重绘,surfaceChanged()多次调用导致多次修改预览图大小和位置,从而发生预览图闪烁问题,试问如何在不去掉加入的PreferenceFragment的情况下,来解决预览图闪烁的问题?
在surfaceChanged中通过adjustDisplayRatio()方法,根据纵横比来更改预览图大小位置

adjustDisplayRatio()方法 通过layout()来改变预览图大小位置

阅读 8.1k
1 个回答

楼主这个背景怎么搞的 好犀利的样子

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题