- Погода на экране. Лучшие виджеты
- Как установить погоду на экране Андроид
- Способ №1
- Способ №2
- Способ №3
- Что делать, если стандартного виджета нет или он вас не устраивает
- Создаём приложение “прогноз погоды” на Android
- 1. Подготовка
- 2. Создадим новый проект
- 3. Добавим пользовательский шрифт
- 4. Отредактируем файл манифеста
- 5. Отредактируем макет Activity
- 6. Отредактируем макет Fragment
- 7. Изменим strings.xml
- 8. Добавим пункт меню
- 9. Получаем данные из OpenWeatherMap
- 10. Сохраним город в настройках
- 11. Создадим Fragment
- 12. Редактируем Activity
- Заключение
- 5 Android приложений с самым точным прогнозом погоды
- Топ 5 Андроид-программ с точным прогнозом погоды
- The Weather Channel
- Overdrop
- AccuWeather
- Today Weather
- Яндекс.Погода
- Как установить виджет погоды на Андроид
Погода на экране. Лучшие виджеты
Смартфоны на базе Андроид, в отличие от тех же айфонов, поддерживают не только лаунчеры и темы, но и дают возможность устанавливать на главный экран всевозможные виджеты. Виджет погоды один из самых популярных и востребованных среди них. О том какой виджет погоды лучше и как его установить читаем ниже.
Как установить погоду на экране Андроид
Как правило все Андроид смартфоны уже имеют стандартный виджет погоды, который без труда можно установить на экран.
Способ №1
Чтобы поставить на экран стандартный виджет погоды следует нажать и удерживать в любом свободном месте на рабочем столе пока не появится контекстное меню.
Нажмите на кнопку “Виджеты” и найдите виджет “Погода”
Виджетов может быть несколько. Выберите тот, который вам больше понравится.
Нажмите и удерживайте пальцем на выбранном виджете, чтобы поместить его на экран телефона. В некоторых случаях возможно дополнительно отредактировать размер виджета.
Способ №2
У некоторых производителей, для доступа к выбору виджетов, необходимо сделать “щипок” по экрану. Данный способ, например, работает на телефонах Xiaomi с прошивкой MIUI.
Остальные действия по установке погоды, аналогичны предыдущему способу.
Способ №3
В старых версиях Андроид раздел виджетов находится в меню приложений. В остальном установка ничем не отличается.
Что делать, если стандартного виджета нет или он вас не устраивает
Если функционала стандартного виджета вам не достаточно, есть возможность скачать дополнительные виджеты в Play Market.
В строке поиска введите слово “Погода” для поиска нужного приложения
Выберите понравившееся приложение и нажмите “Установить”
Вместе с приложением будет доступен и новый виджет. Установить погоду на экран можно также, как и стандартный виджет.
Источник
Создаём приложение “прогноз погоды” на Android
Многие популярные приложения прогноза погоды в Google Play либо содержат много рекламы, либо требуют слишком большого количества разрешений, либо содержат функционал, который большинство из нас никогда не используют. Было бы здорово, если бы мы могли создать собственное приложение погоды с нуля?
В этом уроке я покажу вам, как это сделать. Наше приложение будет иметь простой и минималистичный пользовательский интерфейс, показывающий пользователю именно то, что ему нужно знать о текущих погодных условиях. Давайте начнем.
1. Подготовка
Прежде чем продолжить, дважды проверьте, что у вас установлены следующие компоненты:
- Eclipse ADT Bundle: вы можете скачать его на веб-сайте разработчика Android.
- Ключ APIOpenWeatherMap : это не обязательно для выполнения нашей задачи, но это бесплатно. Вы можете получить его, зарегистрировавшись на сайте OpenWeatherMap.
- Иконки: Я рекомендую вам скачать шрифт weather icons font, созданный Эриком Флорсом. Вам нужно загрузить файл TTF, потому что мы будем использовать его в нативном приложении. Мы будем использовать этот шрифт чтобы показывать различные значки в зависимости от погодных условий.
2. Создадим новый проект
Я собираюсь назвать это приложение SimpleWeather, но вы можете дать ему любое имя, которое вам понравится. Введите уникальное имя пакета, установите минимальный необходимый SDK на Android 2.2 и установите целевой SDK на Android 4.4. Вы можете оставить тему Holo Dark.
Это приложение будет иметь только одно Activity , и оно будет основано на шаблоне Blank Activity, как показано ниже.
Назовите Activity WeatherActivity. Мы будем использовать Fragment внутри этого Activity . Макет, связанный с Activity называется activity_weather.xml. Макет, связанный с Fragment называется fragment _weather.xml.
3. Добавим пользовательский шрифт
Скопируйте weathericons-regular-webfont.ttf в каталог assets/fonts вашего проекта и переименуйте его в weather.ttf.
4. Отредактируем файл манифеста
Единственное разрешение, которое требуется этому приложению — это android.permission.INTERNET .
Чтобы упростить этот урок, мы рассмотрим только портретный режим. Узел activity манифеста должен выглядеть так:
5. Отредактируем макет Activity
В activity_weather.xml изменений не так много. Он должен уже включать в себя FrameLayout . Добавьте дополнительное свойство, чтобы изменить цвет фона на #FF0099CC .
6. Отредактируем макет Fragment
Измените файл fragment_weather.xml, добавив пять тегов TextView , чтобы отобразить следующую информацию:
- город и страна
- текущая температура
- значок, показывающий текущее погодное условие
- отметка времени, указывающая пользователю, когда было получено последнее обновление информация о погоде
- более подробная информация о текущей погоде, например, описание и влажность
Используйте RelativeLayout для размещения текстовых представлений. Вы можете настроить textSize для различных устройств.
7. Изменим strings.xml
Этот файл содержит строки, используемые в нашем приложении, а также коды символов Юникода, которые мы будем использовать для отображения значков погоды. Приложение сможет отображать восемь различных типов погодных условий. Если вам нужно больше, примените следующую хитрость. Добавьте следующие значения в файл values/strings.xml:
8. Добавим пункт меню
Пользователь должен иметь возможность выбирать город, чью погоду они хотят видеть. Измените файл menu/weather.xml и добавьте элемент для этой опции.
Теперь, когда все XML-файлы готовы к использованию, давайте перейдем к запросу на API OpenWeatherMap для получения данных о погоде.
9. Получаем данные из OpenWeatherMap
Мы можем получить текущие данные о погоде в любом городе, в формате JSON, с помощью API OpenWeatherMap. В строке запроса мы передаем имя города и систему измерения, в которой должны быть результаты.
Например, чтобы получить текущую информацию о погоде в Канберре, используя метрическую систему, мы отправляем запрос на http://api.openweathermap.org/data/2.5/weather?q=Canberra&units=metric
Ответ, который мы получаем через API, выглядит так:
Создайте новый класс Java и назовите его RemoteFetch.java. Этот класс отвечает за получение данных о погоде через API OpenWeatherMap.
Мы используем класс HttpURLConnection для выполнения удаленного запроса. API OpenWeatherMap ожидает ключ API в HTTP-заголовке с именем x-api-key . Это определено в нашем запросе с использованием метода setRequestProperty .
Мы используем BufferedReader для чтения ответа API в StringBuffer . Когда мы получим полный ответ, мы преобразуем его в объект JSONObject .
Как видно из приведенного выше ответа, данные JSON содержат поле с именем cod . Его значение равно 200 , если запрос был успешным. Мы используем это значение, чтобы проверить, имеет ли ответ JSON текущую информацию о погоде или нет.
Класс RemoteFetch.java должен выглядеть следующим образом:
10. Сохраним город в настройках
Пользователь не должен указывать имя города каждый раз, когда захочет использовать приложение. Приложение должно запомнить последний город, который искал пользователь. Мы делаем это, используя SharedPreferences . Однако вместо прямого доступа к этим настройкам из нашего класса Activity , для этого лучше создать отдельный класс.
Создайте новый класс Java и назовите его CityPreference.java. Чтобы сохранить и получить имя города, создайте два метода setCity и getCity . Объект SharedPreferences инициализируется в конструкторе. Класс CityPreference.java должен выглядеть следующим образом:
11. Создадим Fragment
Создайте новый класс Java и назовите его WeatherFragment.java. В этом фрагменте в качестве макета используется frag_weather.xml. Объявите пять объектов TextView и инициализируйте их в методе onCreateView . Объявите новый объект Typeface с именем weatherFont . Объект TypeFace указывает на веб-шрифт, который вы загрузили и сохранили в папке assets/fonts.
Мы будем использовать отдельный Thread для асинхронного получения данных через API OpenWeatherMap. Мы не можем обновить пользовательский интерфейс из подобного фонового потока. Поэтому нам нужен объект Handler , который мы инициализируем в конструкторе класса WeatherFragment .
Инициализируем объект weatherFont , вызывая createFromAsset в классе Typeface . Мы также вызываем метод updateWeatherData в onCreate .
В updateWeatherData , мы запускаем новый поток и вызываем getJSON в классе RemoteFetch . Если значение, возвращаемое getJSON , равно null , мы выводим сообщение об ошибке пользователю. Если это не так, мы вызываем метод renderWeather .
Только основной поток разрешает обновлять пользовательский интерфейс приложения для Android. Вызов Toast или renderWeather прямо из фонового потока приведет к ошибке выполнения. Вот почему мы вызываем эти методы с использованием метода post — обработчика .
Метод renderWeather использует данные JSON для обновления объектов TextView . Узел weather ответа JSON представляет собой массив данных. В этом уроке мы будем использовать только первый элемент массива метеорологических данных.
В конце метода renderWeather мы вызываем setWeatherIcon с идентификатором текущей погоды, а также временем восхода и захода солнца. Настройка значка погоды немного сложна, потому что API OpenWeatherMap поддерживает больше погодных условий, чем мы можем отобразить с помощью используемого веб-шрифта. К счастью, идентификаторы погоды следуют шаблону, о котором вы можете узнать больше на веб-сайте OpenWeatherMap.
Так мы будем сопоставлять идентификатор погоды с иконкой:
- коды погоды в диапазоне 200 обозначают грозу, что означает, что мы можем использовать R .string.weather_thunder для них
- коды погоды в диапазоне 300 связаны с моросями, и мы используем R.string.weather_drizzle
- коды погоды в диапазоне 500 означают дождь, и мы используем R.string.weather_rain
- и так далее .
Мы используем время восхода и захода солнца, чтобы отобразить солнце или луну, в зависимости от текущего времени суток и только в том случае, если погода ясная.
Конечно, вы можете обрабатывать больше погодных условий , соответственно изменяя метод setWeatherIcon .
Наконец, добавим метод changeCity к фрагменту, чтобы пользователь мог обновить текущий город. Метод changeCity будет вызываться только из основного класса Activity .
12. Редактируем Activity
В течении настройки проекта, Eclipse заполняет WeatherActivity.java некоторым шаблонным кодом. Замените стандартную реализацию метода onCreate на приведенную ниже, в которой мы используем WeatherFragment . Метод onCreate должен выглядеть следующим образом:
Затем отредактируйте метод onOptionsItemSelected и обработайте единственный параметр меню, который у нас есть. Все, что вам нужно сделать, это вызвать метод showInputDialog .
В методе showInputDialog мы используем AlertDialog.Builder для создания объекта Dialog , который предлагает пользователю ввести имя города. Эта информация передается методу changeCity , который хранит имя города с использованием класса CityPreference и вызывает метод changeCity во фрагменте .
Теперь ваше приложение для погоды готово. Соберите проект и установите его на Android-устройстве для тестирования.
Заключение
Теперь у вас есть полнофункциональное приложение прогноза погоды. Изучайте API OpenWeatherMap для дальнейшего развития вашего приложения. Вы также можете использовать больше значков погоды, так как в примере мы используем только немногие из них.
Источник
5 Android приложений с самым точным прогнозом погоды
Смартфон или планшетник под управлением операционной системы Android — это многофункциональное устройство. Одна из основных его возможностей — просмотр погоды.
Самый точный прогноз погоды для Андроид можно смотреть в приложениях. Это значительно комфортнее, чем использование браузера, а также дает пользователям выбор.
Любой аппарат на Андроиде позволяет быть в курсе прогноза погоды. Даже на очень устаревших мобильных устройствах есть предустановленная программа или виджет, что уж говорить о современных девайсах.
Некоторые удивятся, но существует множество приложений, которые не хуже, а в некоторых аспектах даже лучше предустановленных программ.
Топ 5 Андроид-программ с точным прогнозом погоды
Сказать, какой именно вариант самый точный и лучший среди приложений для просмотра погоды, невозможно.
У каждого пользователя свои вкусы и требования к программному обеспечению, поэтому приложение, топовое для кого-то, может быть неподходящим для другого.
Поэтому я сформировал список из пяти лучших приложений для просмотра погоды на Android.
При составлении топа я опирался на 5 главных критериев:
- Дизайн.
Приложение погоды должно иметь уникальный дизайн, сделанный со вкусом, иначе оно не будет отличаться от сотен остальных. Нужно, чтобы пользоваться программой было приятно и удобно. - Быстродействие.
Для отображения данных по погоде, пусть даже и очень подробных, не требуется высокой мощности или быстрого интернета. Поэтому приложение должно потреблять крайне мало вычислительной мощности и занимать незначительный объем оперативной памяти. Ну и главное, программа должна быстро работать даже на старых или слабых аппаратах. - Виджет погоды.
Обязательно, чтобы у приложения был виджет. Довольно неудобно каждый раз открывать программу, чтобы смотреть погоду. Виджет позволяет установить на домашний экран панель с отображением погоды. Можно настроить ее размер и данные, которые будут показываться. Очень удобно и экономит массу времени! - Локализация на русский язык.
Приложение обязательно должно быть переведено на русский язык, чтобы любой пользователь из России и близлежащих стран мог без проблем им пользоваться. Конечно, указание градусов и скорости ветра понятно на любом языке, но подробные данные по типу направления ветра и вероятности осадков будут непонятны тем, кто не знает английского (или другого) языка. - Функции в бесплатной версии.
Бывают приложения, которые хороши исключительно если их купить, а бесплатная версия наоборот имеет крайне мало функций. В случае с программами для просмотра погоды такого быть не должно. Важно, чтобы все основные возможности, такие как отображение градусов, погоды на ближайшие дни, скорости ветра и возможности осадков были в бесплатной версии. Наличие рекламы возможно, но только если она не раздражающая и не появляется регулярно.
The Weather Channel
Многофункциональное и удобное приложение от небезызвестного разработчика IBM. Можно просматривать точный прогноз на десять суток вперед, а также смотреть локальную погоду в конкретном районе города или жилого сектора.
Есть функция просмотра погоды у определенной достопримечательности, которую можно добавить в избранное, чтобы с легкостью находить.
Другие полезные возможности приложения The Weather Channel:
- Панель “Сезонный портал”, в которой можно увидеть такие подробные данные, как индекс активности комаров, индекс потоотделения, индекс необходимости зонта, индекс жары, показатель ультрафиолетового излучения и прочее.
- Вкладка “Информация на сегодня” с отображением скорости ветра (и его направления), влажности, температуре, точки росы, давлении, времени рассвета и заката.
- Панель “Загрязнение воздуха”, где отображается процент загрязнения. Чем он ниже, тем воздух чище.
- Окно “Образ жизни”. Очень полезная панель, в которой указан уровень пыльцы, подходит ли нынешняя погода для бега, есть ли угрожающие жизни события неподалеку и многое другое.
The Weather Channel без преувеличения можно назвать одним из самых многофункциональных приложений погоды, если не самым.
Overdrop
Приложение специализируется на предупреждении о надвигающихся штормах, поэтому незаменимо в местности, где они происходят часто. Также Overdrop может предупреждать о сильном ветре различного типа, будь то ураган или метель.
Программа позволяет существенно кастомизировать интерфейс и внешний вид. Здесь есть изображение в реальном времени с функционирующего спутника Земли.
Отличительная черта Overdrop в том, что можно детально настраивать, какие данные будут отображаться на основных страницах приложения. Помимо этого, есть масса модулей с изображениями и темы, большая часть которых доступна в платной версии.
AccuWeather
AccuWeather не может похвастаться таким количеством возможностей, как в двух предыдущих приложениях, но зато очень точно отображает прогноз погоды. Публикуется изменение погодных условий на неделю вперед, при этом сервис крайне редко ошибается даже в мелочах.
Помимо просмотра погоды, из приложения можно почитать новости, и увидеть осадки на карте. Есть платная версия.
Today Weather
Самое стильное приложение из топ-5, которое подходит для тех, кому достаточно лишь основной информации о погодных условиях. Есть возможность выбрать источник информации.
График погоды доступен на грядущие 10 суток. Также имеется радар, который наглядно отображает изменение погодных условий на карте мира.
Яндекс.Погода
Приложение от Яндекса, которое прекрасно работает и поддерживает обратную связь. Если какие-либо данные в программе не совпадают с действительностью, можно отправить разработчикам отчет, указав на ошибку и исправив ее.
В остальном функции стандартные. Примечательно, что температура показывается не только по факту, но и каковой она ощущается.
Как установить виджет погоды на Андроид
Любое из приложений в топ-5 имеет виджет, который можно поставить на домашний экран. В нем будет отображаться краткая информация, а если тапнуть на панель, раскроется приложение, где можно посмотреть самый точный прогноз погоды для Андроид.
Инструкция для того как установить виджет погоды на Андроид:
- Перейти на главный экран.
- Коснуться свободного участка и удерживать на нем палец.
- Отобразится меню управления домашним экраном. Надо нажать на кнопку “Виджет”, которая может быть изображена в виде соответствующей иконки.
- Откроется окно со всеми имеющимися виджетами на смартфоне или планшете. Здесь необходимо найти виджет погоды именно той программы, которой вы пользуетесь. После этого на виджет нужно нажать, выбрав его размер или тип (если такая возможность предусмотрена разработчиками приложения).
- Перетащить виджет пальцем в предпочитаемое место на домашнем экране.
- Тапнуть на свободный участок, чтобы закрыть меню управления главным экраном.
Точно так же виджет можно удалить, удерживая его и переместив в корзину. Чтобы навсегда избавиться от виджета, требуется удалить приложение.
Источник