初始化相机后,申请权限,不显示预览界面

把SurfaceView隐藏一次,再显示一次就行了

SurfaceView.visibility=View.GONE

SurfaceView.visibility=View.VISIBLE


解释一下:

surfaceHolder=sv.holder

surfaceHolder?.addCallback(this)

surfaceHolder?.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)

一般我们都这么初始化surfaceHolder,然后在callback会调中初始化camear

override fun surfaceChanged(holder:SurfaceHolder?, format:Int, width:Int, height:Int) {

}

override fun surfaceDestroyed(holder:SurfaceHolder?) {

}

override fun surfaceCreated(holder:SurfaceHolder?) {

}

这儿就会走surfaceCreated,在里面初始camera,但是在走这个方法之后,发现还没申请权限,就去申请权限,权限申请成功了后,却没有预览界面.

因为这儿已经不会再走一次callback了,但是呢,只需要改变一次预览界面的大小啊什么的就会再走callback,所以就有了开始的隐藏一次再显示一次,就会再调用callback了,这样就能再次初始化camera了,预览界面就有了

你可能感兴趣的:(初始化相机后,申请权限,不显示预览界面)