Я тестировал новый Camera2 API на Android Lollipop. Я хочу, чтобы принести поддерживаемый размер предварительного просмотра:Android Camera2 Размеры вывода
StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
Size[] sizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);
и максимальный размер предварительного просмотра 1440x1080px на Samsung Galaxy Tab S, который имеет разрешение 2560x1600px. Таким образом, мой размер предварительного просмотра - 1440x1080 пикселей, а размер поверхности TextureView - 2560x1600 пикселей, поэтому изображение искажается.
Я тестировал старый API-интерфейс камеры, который устарел.
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
И выше код возвращает 32 комбинаций VariUs размера просмотра, такие как: 2560x1920
, 1920x1080
, 1080x1920
, 2560x2560
и т.д. В этом случае я в состоянии выбрать оптимальный размер и отображать правильное изображение.
Я не знаю, как заставить новый API получить оптимальный размер. Я знаю, что решение заключается в изменении размера представления вниз, которое отображает предварительный просмотр, но встроенное приложение камеры работает в полноэкранном режиме. Спасибо за все предложения!
«Так что мой PreviewSize является 1440x1080px и TextureView размер поверхности 2560x1600px так, что изображение искажено» - это потому, что ваши соотношения сторон не совпадают. Вам нужно, чтобы «TextureView» имел такое же соотношение сторон, что и изображения предварительного просмотра камеры, например, используя отрицательные поля, чтобы размер был больше, чем ваш экран на одной оси. – CommonsWare
Я знаю об этом, но почему размер предварительного просмотра настолько мал? В предварительном просмотре Samsung Galaxy S4 размер изображения 1920 x 1080 (то же самое, что и разрешение), и нет никакой проблемы для отображения изображения. – piotrek00
«Я знаю об этом, но почему размер предварительного просмотра настолько мал?» - вам, наверное, придется спросить у Samsung. – CommonsWare