установка разрешения камеры на андроид телефон - PullRequest
1 голос
/ 26 ноября 2011

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

Я читал здесь об этом, но ответы смутны, все люди продолжают говорить, этоиспользуйте метод getSupportedSizes, но я просто не знаю, что с ним делать после этого.

любая помощь будет принята с благодарностью.

1 Ответ

6 голосов
/ 26 ноября 2011

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

Псевдо ....

    Camera.Parameters cp = mCamera.getParameters();

    List<Size> sl = cp.getSupportedPictureSizes();

//now that you have the list of supported sizes, pick one and set it back to the parameters...
   int w,h;
   for(Size s : sl){
      //if s.width meets whatever criteria you want set it to your w
      //and s.height meets whatever criteria you want for your h
      w = s.width;
      h = s.height;
      break;


   }

   cp.setPictureSize(w, h);

  mCamera.setParameters(cp);

Обычно самое важное - это соотношение сторон фотографии. Итак, вы захотите сравнить ш / ч с 16: 9 или 4: 3, а затем найти самое высокое (или второе по величине) качество при поддерживаемом соотношении. Очевидно, я не знаю, каковы ваши потребности, поэтому вам придется определить, какие размеры действительно соответствуют вашим заданным критериям. Если вам просто нужно высочайшее качество и вас не интересует соотношение сторон, вы обычно найдете его как последний элемент в списке размеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...