getSupportedPictureSize () возвращает значение, которое фактически не поддерживается Nexus4

Я расширил SurfaceView для отображения канала камеры для очень простого приложения камеры. Чтобы найти оптимальный размер предварительного просмотра для каждого устройства, я использовал этот пример кода, который используется почти во всех приложениях камеры с открытым исходным кодом, которые я видел:

    List<Camera.Size> sizes = parameters.getSupportedPreviewSizes();
    double minDiff = Double.MAX_VALUE;
    for (Camera.Size size : sizes) {
        if (Math.abs(size.width - width) < minDiff) {
        screenWidth = size.width;
        screenHeight = size.height;
        minDiff = Math.abs(size.width - width);
        }
    }

Все отлично работает до этого момента.

Теперь, в связи с характером приложения, мне нужно сохранить два растровых изображения в памяти во время сеанса, и для простоты (чтобы избежать проблем с памятью во время тестирования) я использовал тот же код для РАЗМЕРА ИЗОБРАЖЕНИЯ (заменил getSupportedPreviewSizes () с getSupportedPictureSizes ()). Все отлично работает на большинстве устройств, хотя мне нужно выбрать другой способ выбрать оптимальный размер изображения для каждого устройства.

Недавно, во время тестирования на устройстве Nexus 4, этот цикл не позволил выбрать оптимальный размер изображения. После исследования я обнаружил, что функции getSupportedPictureSizes () возвращают значение, т.е. 1280 * 960, которое фактически не поддерживается камерой Nexus 4. Итак, как решить эту проблему? Я имею в виду, разве эта функция не должна возвращать ТОЛЬКО те значения, которые поддерживает КАМЕРА устройства? Я уверен, что будут другие устройства с той же проблемой, которые я не смогу протестировать. Любые подсказки относительно того, как эта проблема должна быть решена?

ОБНОВЛЕНИЕ: происходит то, что он принимает неправильный параметр без каких-либо ошибок, и изображение, которое он возвращает, искажено, я также постараюсь получить изображение здесь. Кроме того, нет никаких исключений времени выполнения.

Ответы на вопрос(0)

Ваш ответ на вопрос