Как из программы сделать виджет

Решения конкретных задач программирования. Java, Android, JavaScript, Flex и прочее. Настройка софта под Linux, методики разработки и просто размышления.

вторник, 12 июля 2011 г.

Пишем виджет для Android

В сети есть достаточно много инструкций по написанию виджетов для Android. Большая часть из них «HelloWorld-ы», в остальных местах упущены какие-то важные мелочи. В общем давайте разберём создание виджета «по взрослому»: с фоновыми процессами, обработкой кликов, локализацией. Пусть наш виджет получает курс валюты Bitcoin по отношению к доллару из API биржы Mt. Gox и отображает его текущее значение.

В результате мы получим что-то вроде этого.

Во-первых, чем виджет отчается от Activity?
Виджет работает в рамках «рабочего стола» нашего смартфона и от этого имеет как плюсы так и минусы. Плюсы: можно настроить обновление средствами системы. Интервал обновления при этом не может быть меньше получаса (180000 ms). Приложение всегда на виду: клиенту можно что-то сообщать не дожидаясь его действий.

IOS 14 ОФОРМЛЕНИЕ ТЕЛЕФОНА/ КАК МЕНЯТЬ ИКОНКИ НА АЙФОНЕ, КАК ДОБАВИТЬ ВИДЖЕТЫ + ПРИЛОЖЕНИЯ

Минусы: ограниченный набор компонентов, доступных для использования в интерфейсе (из компоновщиков можно использовать только «FrameLayout», «LinearLayout» и «RelativeLayout». Из View: «AnalogClock», «Button», «Chromometer», «ImageButton», «ImageView», «ProgressBar» и «TextView». ). Также ограничено время, которое отводится на исполнение запросов. Ну, и, само собой, ограниченный размер «рабочей площади». Также достаточно сложно реализовать обработку событий в виджете: onclickListener на кнопку в виджете «повесить» не получится.

Как регистрировать виджет?
Так же как и всё остальное в нашем приложении, виджет описывается в AndroidManifest.xml. В тег application добавляем структуру:

Тут .CourceWidget — класс, описывающий виджет, widget_cource — xml файл (фактически: res/xml/widget_cource.xml), описывающий параметры виджета.

Как описать параметры виджета?
Вот, например, так:

Тут android:minWidth и android:minHeight соответственно ширина и высота виджета. Рекомендуется приводить размеры по формуле: число пикселей = (число ячеек * 74) – 2. Одну ячейку на «рабочем столе» занимает одна иконка. Значение android:updatePeriodMillis , как уже говорили, определяет период обновления виджета в миллисекундах. В атрибуте android:initialLayout указываем ссылку на xml файл (res/layout/cource_message.xml) с описанием интерфейса виджета.

Как описать интерфейс виджета?
Вот, например, так:

Это обычный LinearLayout с четырьмя TextView, два из которых содержат строковые константы («покупка» и «продажа») а другие два заполняются данными, полученными из API. Строковые константы для поддержки «мультиязычности» выносим в файл res/values/strings.xml (значения по умолчанию — английская локализация) и res/values-ru/strings.xml (русская локализация).

Как обеспечить локализацию виджета?
Как сказано выше: вынести все константы в xml-файл вида

< resources >
< string name =»app_name» >Exchange rate of Bitcoin
< string name =»app_label» >Bitcoin:USD exchange rate
< string name =»buy» >Buy:
< string name =»sell» >Sell:
< string name =»loading» >Loading
< string name =»err_connect» >Connect error

Как описать логику, которая должна выполняться при обновлении виджета?
Вот тут мы, наконец-то, начинаем писать java-код. Для описания логики обновления данных мы должны реализовать класс, имя которого указано в самом первом xml-конфиге, приведённом в этой статье. Это CourceWidget.java:

Читайте также:
Кто вел программу мир животных

Наш класс расширяет AppWidgetProvider , переопределяя его метод onUpdate . В этом методе мы ничего не делаем, кроме одного: мы запускаем сервис UpdateService , описанный тут же, как вложенный класс.

Что такое сервис и зачем он нам нужен?
В контексте виджета мы не можем обращаться к сетевым ресурсам: время обновления «рабочего стола» должно быть минимальным. Сервис — это фоновый процесс, который Android исполняет в отдельном потоке настолько долго, насколько это нам нужно. Чтобы зарегистрировать сервис в AndroidManifest.xml внутри тега application добавим:

Как сервис получит данные из API?
Очень просто. Отправив get-запрос, мы получаем строку, которая на самом деле представляет собой JSON-структуру. Парсинг JSON выполняем при помощи классов org.json.* которые доступны без подключения всяких сторонних библиотек. Передаём полученную из API строку в конструктор объекта JSONObject. Методами этого объекта мы получаем вложенные объекты и их поля, т.е. значения из ответа (строки 28-30).

В случае любой ошибки присваиваем переменным значения по умолчанию.

Как сервис передаёт данные в виджет?
У виджета нельзя обратиться к отдельному элементу View, чтобы изменить его свойства. Можно только заменить всю иерархию компонентов целиком. Для этого создаём объект RemoteViews (строка 21) и «вкладываем» в него полученные из API данные с помощью метода setTextViewText. Потом иерархию с установленными свойствами выдаём в виджет с помощью метода updateAppWidget (строка 13).

И напоследок: как обрабатывать нажатие на виджет?
Тут мы с сожалением вспомним удобные Listener-ы из Activity. В виджетах всё существенно сложнее. Добавим в наш класс CourceWidget константу:
public static String ACTION_WIDGET_RELOAD = «reload»;
Затем в нашем сервисе создадим событие:

Intent active = new Intent(context, CourceWidget.class);
active.setAction(ACTION_WIDGET_RELOAD);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
. и зарегистрируем его (привязав к какому-нибудь id элемента из нашей иерархии RemoteViews):
views.setOnClickPendingIntent(R.id.reload, actionPendingIntent);
В данном случае мы «навешиваем» событие на элемент с id «reload».
Чтобы получить и обработать событие в классе CourceWidget переопределяем метод:

Тут мы заново стартуем сервис прои нажатии на виджет, тем самым вызывая «внеочередное» обновление данных.

P.S: по многочисленным просьбам даю ссылку на исходники моего проекта, «по мотивам» которого была написана эта статья.

Источник: findevelop.blogspot.com

Как пользоваться Widgetsmith и создать свои виджеты в iOS 14

С выходом iOS 14 виджеты буквально получили вторую жизнь на iPhone. Если раньше это были небольшие информационные окна в отдельном разделе операционной системы, то сейчас виджеты можно размещать в любом месте экрана, на любом рабочем столе, причем сколько угодно! Но к удивлению популярностью стали пользоваться не столько виджеты от уже установленных приложений (вроде почты, календаря и прочего), а программы, позволяющие создавать собственные виджеты. Одним из самых популярных приложений для создания виджетов оказалось Widgetsmith. Что в нем такого особенного, и как создать свой виджет?

Как пользоваться Widgetsmith и создать свои виджеты в iOS 14. С этим приложением можно сделать какой угодно виджет. Фото.

С этим приложением можно сделать какой угодно виджет

Что такое Widgetsmith

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

Первое, что вам нужно сделать, это выбрать, какую информацию вы хотите, чтобы виджет отображал на главном экране. Вот какие данные можно вывести в Widgetsmith:

  • Время;
  • Дата;
  • Пользовательские: фото, текст, альбом;
  • Календарь;
  • Напоминания;
  • Погода;
  • Здоровье и активность;
  • Приливы;
  • Астрономия.
Читайте также:
Программа ворд пад поддерживает не все функции формата этого документа

Есть как бесплатные виджеты, так и те, которые доступны только при оформлении подписки на премиальные функции. Подписка стоит 149 рублей в месяц или 1 550 рублей в год.

Что такое Widgetsmith. Виджеты, созданные в Widgetsmith. Хотите так же? Читайте ниже. Фото.

Виджеты, созданные в Widgetsmith. Хотите так же? Читайте ниже

Как пользоваться Widgetsmith

Процесс создания виджета невероятно прост. Вы просто выбираете размер виджета, который хотите создать, а затем нажимаете на виджет, чтобы настроить его.

Как пользоваться Widgetsmith. Выберите размер и тип виджета. Фото.

Выберите размер и тип виджета

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

Как пользоваться Widgetsmith. Типов виджетов очень много, некоторые бесплатные, другие за деньги. Фото.

Типов виджетов очень много, некоторые бесплатные, другие за деньги

Вот, например, как создать текстовый виджет Widgetsmith. Выбираете размер виджета и настраиваете его: выбираете Text (тип данных), а затем меняете цвет шрифта, фон, тип шрифта — в общем, настраиваете так, как надо.

Как пользоваться Widgetsmith. Создание текстового виджета. Фото.

Создание текстового виджета

Для того, чтобы сделать фото виджет в Widgetsmith, выберите тип «Photo», а затем загрузите свое изображение из библиотеки.

Как пользоваться Widgetsmith. Выберите тип виджета Photo. Фото.

Выберите тип виджета Photo

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

Как пользоваться Widgetsmith. Добавьте виджет на рабочий стол. Фото.

Добавьте виджет на рабочий стол

А если еще добавить к виджетам Widgetsmith собственные иконки, можно вообще изменить рабочий стол на айфоне до неузнаваемости.

Как добавить виджет в iOS 14

После того, как вы создали виджет главного экрана iOS 14 в приложении Widgetsmith, вы можете вернуться на главный экран, нажать на него пару секунд, а затем выбрать значок «+» в верхнем левом углу. Найдите Widgetsmith в списке приложений, затем выберите размер созданного вами виджета.

На главном экране iOS 14 вы можете использовать столько виджетов от Widgetsmith, сколько захотите. После того, как вы добавите виджет Widgetsmith на домашний экран, нажмите и удерживайте, выберите «Редактировать виджет» и переключайтесь между всеми виджетами, созданными в приложении Widgetsmith. Каждый виджет на вашем домашнем экране iOS 14 может быть сделан в Widgetsmith, если вы захотите.

Как добавить виджет в iOS 14. Можно сделать несколько виджетов и переключаться между ними. Фото.

Можно сделать несколько виджетов и переключаться между ними

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

Если вы еще не скачали это приложение, можете попробовать по ссылке ниже. Свои рабочие столы можете скидывать в нашем чате в Telegram, интересно, что у вас получится.

Источник: appleinsider.ru

Как создавать собственные виджеты на iPhone с помощью приложения Widgetsmith

С выходом iOS 14 Apple значительно расширила функционал виджетов на iPhone, а также разрешила создавать собственные темы оформления. Это послужило стремительному наполнению App Store сторонними приложениями, которые помогают пользователям кастомизировать главный экран iOS. В этом материале мы расскажем об одном таком приложении – Widgetsmith. Данная разработка значительно упрощает создание собственных виджетов на iPhone.

Читайте также:
Программа как смешать краски

Как создавать собственные виджеты на iPhone

Приложение Widgetsmith создана Дэвидом Смитом, разработчиком нескольких популярных приложений для Apple Watch и iPhone, включая Watchsmith, Sleep++ и Pedometer++. Концепция программы Widgetsmith заключается в том, что она позволяет создавать настраиваемые и персонализированные виджеты для домашнего экрана iOS 14. При этом приложение еще и активно обновляется – появляются дополнительные опции, иконки и т.д. С ее помощью можно раскрасить виджеты в соответствии с вашими предпочтениями. Как это работает?

Видео:

Как с помощью Widgetsmith настроить виджеты для домашнего экрана iPhone и iPad в iOS 14

На главном экране приложения Widgetsmith (ссылка для скачивания) на вкладке Widgets предлагаются на выбор три различных размера виджетов: маленький, средний и большой. Каждый виджет может отображать различную информацию и настраиваться с использованием различных стилей и цветов шрифтов, оттенков и цветов фона.

Сам процесс невероятно прост.

1. Нажмите кнопку «Add Widget» для нужного вам размера виджета.

2. Нажмите на виджет для его настройки.

3. Выберите какого рода информацию вы хотите видеть на главном экране. Вот источники данных, доступные в Widgetsmith (ниже мы привели несколько примеров для добавления виджетов):

Как создавать собственные виджеты на iPhone

Как создавать собственные виджеты на iPhone

  • Пользовательские: фото, фотографии в альбоме.

Как создавать собственные виджеты на iPhone

Как создавать собственные виджеты на iPhone

Как создавать собственные виджеты на iPhone

  • Пользовательские: текст, бланк

Как создавать собственные виджеты на iPhone

Как создавать собственные виджеты на iPhone

  • Календарь
  • Напоминания
  • Погода (платно по подписке)
  • Здоровье и активность
  • Приливы (платно по подписке)
  • Астрономия

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

Как создавать собственные виджеты на iPhone

4. После того, как вы создали виджет для главного экрана iOS 14 в приложении Widgetsmith, вы можете вернуться на главный экран, нажать и удерживать палец для включения режима покачивания иконок, а затем нажать значок «+» в верхнем левом углу.

Как создавать собственные виджеты на iPhone

5. Найдите Widgetsmith в списке приложений, затем выберите размер созданного вами виджета и нажмите кнопку «Добавить виджет».

Как создавать собственные виджеты на iPhone

6. После этого на главный экран iOS будет добавлен виджет от Widgetsmith.

На главном экране iOS 14 вы можете использовать столько виджетов от Widgetsmith, сколько захотите. После того, как вы добавите элемент Widgetsmith нужного вам размера на главный экран, нажмите на него пальцем и удерживайте, затем выберите «Изменить виджет».

Как создавать собственные виджеты на iPhone

7. В появившемся меню выберите вариант «Widget».

Это позволит вам выбрать один из нескольких дизайнов, уже созданных в приложении Widgetsmith. Фактически, каждый виджет домашнего экрана iOS при желании может быть получен от Widgetsmith.

Как создавать собственные виджеты на iPhone

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

Как создавать собственные виджеты на iPhone

8. Для удаления ненужного виджета в приложении Widgetsmith, проведите пальцем справа налево по выбранному и нажмите красную кнопку «Delete».

Как создавать собственные виджеты на iPhone

  • Новое в iOS 14: Как на iPhone и iPad спрятать ненужные страницы с приложениями с домашнего экрана.
  • Зеленая, оранжевая или красная точка вверху экрана iOS 14: для чего они нужны?
  • Постучать по крышке Айфона – сделать скриншот: как привязать действия к касанию задней части корпуса iPhone.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 3.5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Источник: yablyk.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru