Разбираю пример по работе с камерой и наткнулся на метод который возвращает список доступных разрешений
Size[] sizesJPEG = configurationMap.getOutputSizes(ImageFormat.JPEG);
for (Size item : sizesJPEG) {
System.out.println("w:" + item.getWidth() + " h:" + item.getHeight());
}
и на выходе вот так
I/System.out: w:640 h:480
I/System.out: w:352 h:288
I/System.out: w:320 h:240
I/System.out: w:176 h:144
кто работал с камерой скажите для чего нам может понадобиться эта информация?
Ответ
Очевидно, что эта информация может понадобиться для того, чтобы узнать, какие доступны разрешения. Если вам, в конкретном приложении, не требуется данная информация, то вы не будете запрашивать ее, если же такая информация вам вдруг понадобится, для любых целей, то вы знаете где ее взять.
Практический момент может быть в том, чтобы, например, узнать, поддерживает ли камера съемку в JPEG вообще, то есть, если ни одного разрешения не вернул метод, то в JPEG камера не снимает.
Потом, вы можете предложить пользователю выбрать собственные настройки, в каком разрешении снимать - чтобы он не натыкал там чего отсебятины при съемке, когда либо качество слишком низкое, либо слишком высокое, либо аспект не подходящий для фото, которе требуется в вашем приложении.
Данный метод может пригодиться как тем, что поможет вывести, собственно, список доступных вариантов, так и тем, чтобы проверить, есть ли такое разрешение, если, скажем, у вас фиксированный список для всех устройств, но, как вы знаете, не все разрешения поддерживаются всеми камерами.
Так же можно скомбинировать оба варианта и на основе полученной информации о разрешениях конкретной камеры,сформировать список из желаемых вами возможностей выбора в настройках (например, только широкоформатные) с теми, которые поддерживает именно эта камера.
Затем вы устанавливаете фиксированное разрешение, точно зная, что камера такое поддерживает.
Или вы можете получить эту информацию, чтобы установить размеры виджета для вывода снятого, точно по размерам фото.
Вообще, всевозможные API содержат большое количество классов и методов, многие из которых вам могут никогда не понадобиться и вы не будете ими пользоваться, так как для решения именно вашей задачи они не требуются - это вполне нормально.
Наличие каких-то функций в API не подразумевает их непременного использования, особенно если вам трудно придумать, как именно их можно было бы использовать.
Не стоит на этом зацикливаться. Хорошо, что вы знаете, что такая возможность есть и когда-нибудь она и сможет вам пригодится. Если вы не знаете, как бы можно было использовать эту информацию, значит лично вам она в данном проекте не нужна. Оставьте ее в покое и решайте, те проблемы, которые требует текущий проект.
Если вам очень интересно, кто, как, где и для чего использует этот метод, вы можете посмотреть проекты, где он используется и сделать для себя какие то выводы.
Комментариев нет:
Отправить комментарий