Мне удалось решить проблему с вращением, поместив следующий код в onSurfaceChanged ():
if (mHolder.getSurface() == null) {
// preview surface does not exist
return;
}
// stop preview before making changes
try {
mCamera.stopPreview();
} catch (Exception e) {
// ignore: tried to stop a non-existent preview
}
// make any resize, rotate or reformatting changes here
if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) {
mCamera.setDisplayOrientation(90);
} else {
mCamera.setDisplayOrientation(0);
}
// start preview with new settings
try {
mCamera.setPreviewDisplay(mHolder);
mCamera.startPreview();
} catch (Exception e) {
Log.d(TAG, "Error starting camera preview: " + e.getMessage());
}
НО это создало другую проблему, или, лучше сказать, не решило проблему, хотя ориентировалось правильнопредварительное изображение все еще занимало столько же места, сколько и альбомная.В итоге я просто сдался и заставил альбомную ориентацию с помощью:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
в onCreate () и разработал мой макет для ландшафта.Желаем удачи, и я надеюсь, что у кого-то есть ответ на эту вторичную проблему!