Как создать виджет для андроид

Как создать виджет для андроид

Сегодня мы разберемся в том, как создать на Android устройство свой собственный виджет (Widget). Виджет — это всем знакомый элемент рабочего стола, с помощью которого можно получать доступ к некоторым функциям какого — нибудь приложения: просматривать новости в окне виджета, прогноз погоды, обновление новостей на разных сервисах, управлять разными функциями аппарата (блокировать экран, включать радио, Интернет и многое многое другое). На этот раз мы не будем создавать чего то грандиозного и очень полезного, типа там фонарика :), а сделаем простенький виджет, который будет реализован в виде кнопки, при нажатии на которую мы, с помощью стандартного браузера, попадаем на всеми любимый сайт http://learn-android.ru. Конечно, вы сможете настроить любой желаемый вами сайт.

Создаем новые проект, выбираем Blank Activity, минимальная версия Android 2.2+. При создании виджета, первое дело — создать объект AppWidgetProviderInfo, в котором мы укажем xml файл, из которого будет заполняться вид самого виджета. Для этого, создадим в проекте папку res/xml и в ней создаем новый xml файл по имени widget.xml со следующим содержимым:

Теперь перейдем в файл activity_main.xml и создадим интерфейс нашего виджета, он будет состоять из кнопки Button:

Как видите, мы создали обычную кнопочку, вот она и будет нашим виджетом:

То есть, можете потом сделать вместо этой кнопочки все, что вам угодно.

Перейдем к работе с кодом в файле MainActivity.java. Он должен наследоваться от класса AppWidgetProvider, для которого существует его основной метод onUpdate (). В этом методе нам нужно обязательно определить два объекта: PendingIntent и RemoteViews. В конце их использования нужно вызвать метод updateAppWidget(). Код файла MainActivity.java:

Чтобы наш виджет успешно заработал, нужно немного магии в файле манифеста AnroidManifest.xml. Он должен выглядеть вот так:

Как вы догадались, виджет определяется в теге .

Единственное, что осталось подправить — отредактировать файл strings.xml, добавив туда используемые нами строчки:

Внимание! Android Studio может заругаться на вас при запуске программы, требую указать default activity. Выберите строчку «Не запускать activity» (Do not launch Activity):

Теперь устанавливаем приложение на эмулятор либо устройство, добавляем виджет на рабочий стол:

Как видите, все отлично работает.

Итак, в этом уроке мы создали простенький Android Widget, состоящий из кнопки Button, при нажатии на наш виджет мы создаем простой http запрос и переход по заданной URL ссылке. Можете поупражняться с какими-нибудь другими элементами, а не кнопкой, и придумать им интересный функционал. Удачи!

Источник:
http://learn-android.ru/news/sozdanie_widget_delaem_vidzhet_na_android_ustrojstvo/2015-04-10-86.html

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

Виджеты — характерная особенность Android. У многих приложений есть свои собственные виджеты, и в Play Store мы находим множество элементов, которые позволяют отображать погоду и другие элементы на главном экране. Что делать, если мы можем создавать собственные виджеты и создавать их с нуля?

Создание собственного виджета не обязательно требует программирования или написания приложений. В Play Store мы находим специальные инструменты, которые позволяют легко создавать собственные виджеты, на которых мы можем размещать любую информацию (погоду, астрономию, уровень заряда батареи, время, дату и многое, многое другое), а также правильно стилизовать и сортировать их.

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

Мы создаем собственные виджеты с помощью виджета Zooper

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

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

Для целей этой статьи я создам простой виджет с нуля. Я выбрал Empty и переместил его на экран конфигурации. На первом экране мы можем выбрать фон всего виджета, установить местоположение, прикрепить к нему наш календарь и изменить масштаб. Тем не менее, нас должно интересовать вкладка «Макет», в которой мы можем добавить отдельные элементы в виджет.

Каждый элемент, такой как дата, время, значок погоды или температура, называется модуль, который отображается в пределах данного виджета. На вкладке «Макет» мы можем добавить такие модули. Для этого нажмите кнопку «плюс» и выберите тип модуля из списка.

У нас есть текстовые модули (отображающие информацию в виде текста, то есть время, уровень заряда батареи, температуру, дату, астрономическую информацию и т. Д.), Значки и растровые изображения (графические элементы, которые могут отображать графику, связанную с погодой или статусом батареи), а также элементы прямоугольные, серии (например, вертикальные списки с днями недели) или индикаторы выполнения (например, панель, указывающая уровень заряда батареи или уровень сетевого сигнала).

Чаще всего мы будем использовать текстовые модули. Мы выбираем его из списка — мы можем видеть, что он установлен для отображения текущего времени по умолчанию. Мы можем изменить это в опции «Текстовый контент», где мы найдем доступные текстовые элементы для отображения вместо часа. Это могут быть такие, как дата, температура, восход / закат, широта и долгота, имя текущего оператора или сеть Wi-Fi, IP-адрес и многое другое. Все элементы разделены на такие группы, как Погода, Местоположение, Сеть, Система, Время, Дата, Аккумулятор или Календарь.

После выбора типа элемента мы можем установить его цвет, положение на виджетах (ось X, ось Y), размер, масштабирование и другие элементы. Как только мы закончим настройку, мы можем вернуться к списку модулей в опции «Макет» и добавить дополнительные элементы.

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

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

Источник:
http://master-gadgets.ru/kak-sozdat-sobstvennyj-vidzhet-na-android

Clock Maker: удобный редактор виджетов

Разработчик NeonArt решил порадовать любителей красивых виджетов необычной программой — Clock Maker, которая позволит с удивительной лёгкостью создать авторский виджет прямо на рабочем столе.

Платформа: Android

Читайте также  Как подключить Блютуз наушники к телефону на Андроид

Версия: Для Android — 1.1.7

Русский интерфейс: Да

Требования: Android 4.1 и выше

Категория: Персонализация

Часы — одно из самых распространённых приложений в мире. На любом Android-устройстве установлена программа часов, хотя бы стандартная. Она, как правило, не имеет никаких настроек внешнего вида. Именно поэтому пользователи часто ищут альтернативу, а разработчики пишут новые, всё более вычурные версии простой программы.

Приложение Clock Maker призвано раз и навсегда покончить с поисками альтернатив. Его возможности позволят быстро и со вкусом создать любой дизайн виджета, который дополнит и подчеркнёт стиль рабочего стола.

В отличие от аналогов, приложение Clock Maker не поставляет готовых вариантов. Каждый виджет настраивается индивидуально, с помощью очень простого и интуитивно понятного редактора. Настройка производится прямо на рабочем столе, относительно фонового изображения.

Всё очень просто. Слева расположена панель с элементами (кнопка +). Элементы виджета (часы, дата, заряд батареи, погода и т. д.) можно расположить произвольно, в пределах «рамки», которая условно обозначена чёрно-белым прямоугольником в редакторе. Справа расположена панель с уже выбранными элементами и инструментами (кнопка ≡). Инструменты позволяют настроить выбранный элемент виджета — например, часы — так, чтобы те гармонировали с фоновым изображением.

Размер виджета может быть любым. Он подстраивается под свободное место на экране. При желании его можно растянуть или сжать.

Стоит отметить, что для удобства работы с редактором в программу встроен алгоритм наследования свойств элементов. Например, чтобы скопировать все настройки какого-либо элемента, достаточно выбрать его, а потом добавить новый элемент, который автоматически унаследует все свойства последнего.

Clock Maker существенно отличается от программ своего класса. Она даёт полную свободу действий. Собственноручно созданный виджет будет дольше радовать пользователя вложенной в дизайн задумкой.

Плюсы:

  • возможность настройки относительно фона рабочего стола;
  • возможность задать действие при нажатии на виджет;
  • виджет можно редактировать повторно;
  • простота редактора;
  • возможность задать интервал обновления погоды;
  • приложение оптимизировано для планшетов на Android.

Минусы:

  • часть инструментов недоступно в бесплатной версии;
  • нет возможности сохранять и загружать готовые проекты.

Источник:
http://4pda.ru/2016/01/21/271245/

Находки программиста

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

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

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

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

Exchange rate of Bitcoin
Bitcoin:USD exchange rate
Buy:
Sell:
Loading
Connect error

. и обращаться к ним как: @string/loading (вернёт «Loading»). Система сама выберет нужный файл с константами в зависимости от настроек языка в системе. В java-коде обращение к локализованным строковым константам будет выглядеть так: R.string.loading .

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

  1. public class CourceWidget extends AppWidgetProvider <
  2. @Override
  3. public void onUpdate(Context context, AppWidgetManager appWidgetManager, int [] appWidgetIds) <
  4. context.startService( new Intent(context, UpdateService. class ));
  5. >
  6. public static class UpdateService extends Service <
  7. @Override
  8. public void onStart(Intent intent, int startId) <
  9. RemoteViews updateViews = buildUpdate( this );
  10. AppWidgetManager.getInstance( this ).updateAppWidget( new ComponentName( this , CourceWidget. class ), updateViews);
  11. >
  12. /**
  13. * Build a widget update
  14. */
  15. public RemoteViews buildUpdate(Context context) <
  16. RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.cource_message);
  17. String buy = «» ;
  18. String sell = «» ;
  19. // get gata from JSON
  20. try <
  21. JSONObject resp = new JSONObject(Http.Request( «https://mtgox.com/code/data/ticker.php» ));
  22. buy = resp.getJSONObject( «ticker» ).getString( «buy» );
  23. sell = resp.getJSONObject( «ticker» ).getString( «sell» );
  24. > catch (Exception e) <
  25. buy = «. » ;
  26. sell = «. » ;
  27. e.printStackTrace(System.err);
  28. Toast.makeText( this , R. string .err_connect, Toast.LENGTH_SHORT).show();
  29. >
  30. views.setTextViewText(R.id.message_b, «$» + buy);
  31. views.setTextViewText(R.id.message_s, «$» + sell);
  32. return views;
  33. >
  34. @Override
  35. public IBinder onBind(Intent intent) <
  36. return null ;
  37. >
  38. >
  39. >

Наш класс расширяет 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»;
Затем в нашем сервисе создадим событие:

Источник:
http://findevelop.blogspot.com/2011/07/android_12.html

Как создать виджет самостоятельно?

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

В основном виджеты идут в комплекте с приложением. Однако есть программы, которые лишены данной опции. А значит, нужно брать дело в свои руки!

  • С помощью Play Market скачиваем бесплатное приложение “KWGT Kustom Widget Maker”, которые можно приобрести бесплатно, однако часть функций будут доступны только после покупки дополнения.

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

Сперва можно подумать, что “KWGT Kustom Widget Maker” сложное приложение, которое напоминает программы для разработки софта. И да и нет: интерфейс похож, но сложного тут ничего нет.

Чтобы начать редактировать виджеты:

  • заходим на рабочий стол и вызываем меню редактирования рабочих столов путем удержания кнопки меню или долгим тапом по экрану;
  • находим рамку виджетов “KWGT” и выставляем необходимый размер, например — 4х2. После этого на рабочем столе образуется окошко;

  • Кликаем по окошку, тем самым открывая меню выбора виджетов;
  • Выбираем понравившийся макет и нажимаем на него (Дополнительные макеты можно скачивать с Play Маркет. Для этого в строке поиска приложений указываем “KWGT виджеты”);

  • После выбора понравившегося макета приложение перейдет к его редактированию. Будут доступны следующие настройки:
  1. Элементы, отвечающие за настройку геометрических параметров виджета;
  2. Фон, отвечающий за фоновую картинку на виджета;
  3. Касание, задающий действия которые будут выполняться при активации виджета;
  4. Слой, отвечающий за масштаб виджета;

В итоге мы получим уникальный виджет, с необходимым функционалом.

Источник:
http://xistore.by/instructions/kak_sozdat_vidzhet_samostoyatelno/

Как добавить виджет на экран на Android

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

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

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

Если у вас появилось такое меню, то вам нужно выбрать вариант «Виджеты» и после этого добавить нужный виджет на экран выбрав его в списке.

В более современных версиях Андроид после долгого нажатия на пустое место рабочего стола появляется вот такое меню. В котором можно выбрать «Обои», «Виджеты» или «Настройки».

Выбираем «Виджеты», после чего открывается список доступных виджетов. Для того чтобы добавить один из этих виджетов на экран Андроид нужно нажать на него и удерживая палец на экране перенести виджет на рабочий стол.

Кроме этого в некоторых версиях Андроида список виджетов можно открыть через список приложений. Для этого нужно нажать на кнопку открывающую список установленных приложений (кнопка с точками внизу экрана).

И после того, как откроется список приложений, нужно сделать свайп влево для того чтобы перейти от списка приложений, к списку виджетов.

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

Если виджет надоел или вы добавили не тот виджет, то вы всегда можете удалить его с рабочего стола. Для этого нужно нажать на виджет и не отпуская панелец перетащить его на кнопку «Удалить». Обычно такая кнопка находится в верху или низу рабочего стола.

Источник:
http://smartphonus.com/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82-%D0%BD%D0%B0-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D0%BD%D0%B0-android/