我正在开发一个使用相机的应用程序。我做了这样的预览课:publicclassMyPreviewextendsSurfaceViewimplementsSurfaceHolder.Callback,Camera.PreviewCallback{...publicvoidsurfaceCreated(SurfaceHolderholder){...mCamera.setPreviewCallback(this);...}publicvoidsurfaceDestroyed(SurfaceHolderholder){...}publicvoidsurfaceChanged(SurfaceHo
来自thedevelopertutorial,它写道:在对表面进行任何结构更改(格式或大小)后立即调用此方法。此时您应该更新表面中的图像。此方法总是至少调用一次,在我不知道什么情况指的是结构变化。屏幕方向如何? 最佳答案 该方法在视口(viewport)大小改变或首次创建时调用。如果屏幕从垂直旋转到水平,视口(viewport)的大小可能会发生变化,因此您应该重置视口和投影矩阵。有关更多信息,请参阅此博客文章:http://android-developers.blogspot.in/2009/04/introducing-gl
从方法surfaceChanged()调用Camera.setParameters()时出现RuntimeException错误。我看到其他帖子也有同样的问题,但没有找到明确的解决方案:Issuewithsettingtheparameterstocamera我的问题是:为什么要在surfaceCreated()之后立即调用surfaceChanged()?在surfaceCreated()中启动预览是违反直觉的(至少对我而言),只是停止它并在surfaceChanged()中重新启动另一个预览。第一次调用surfaceChanged()时,传入的宽高是什么决定的?正如上述帖子中所建议