Я больше ничего не могу поделать, я прочитал каждую тему об этом в stackoverflow, но ничто не устранило бы мою проблему.Предварительный просмотр камеры искажен
Я пытаюсь настроить предварительный просмотр камеры в FrameLayout, все работает нормально. Я правильно определить размер для предварительного просмотра с этим кодом:
private Camera.Size getBestPreviewSize(int width, int height,
Camera.Parameters parameters) {
Camera.Size result = null;
for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
if (size.width <= width && size.height <= height) {
if (result == null) {
result = size;
} else {
int resultArea = result.width * result.height;
int newArea = size.width * size.height;
if (newArea > resultArea) {
result = size;
}
}
}
}
return (result);
}
Потом я применить его к моей камере:
Camera.Parameters params = mCamera.getParameters();
Camera.Size size = getBestPreviewSize(width, height, params);
params.setPreviewSize(size.width, size.height);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
mCamera.setParameters(params);
предварительный просмотр еще искаженный впоследствии, и моему FrameLayout, что я ожидал, чтобы иметь того же размера, что и размер предварительного просмотра, который я вычислил, остается полноэкранным.
Полноэкранный означает 1920х1200 изображение Размер означает 1920х1080
Так что я сделал, я установил мой размер FrameLayout вручную вычисленной Preview Size. Затем, однако, мой Preview выглядит еще более искаженным.
Я понятия не имею, что я делаю неправильно. Я думал, что когда я использую поддерживаемый размер предварительного просмотра, этого не должно произойти.
UPDATE:
Я побежал мое приложение на другом устройстве, то все работает отлично. Может ли это быть аппаратной ошибкой? Устройство, которое не работает для меня, это планшет Nexus 7.