我正在开发一个使用相机的 android 应用程序。我遇到了 surfaceChanged() 方法的问题。这是我的代码。
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Log.e(TAG, "surfaceChanged");
if (mPreviewRunning) {
mCamera.stopPreview();
}
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
mCamera.setParameters(parameters);
try {
mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
mPreviewRunning = true;
}
变量 mPreviewRunning 在开始时被初始化为 false。程序在水平方向上运行得很好。但是当我将手机旋转到垂直方向时,屏幕会旋转并被拉伸。我不明白为什么会这样。请帮我解决这个问题。