Как создать виджет для Андроид?
Способы и процесс создания виджетов для рабочего стола
AppWidget, или просто «виджет» — один из самых эффектных и удобных элементов пользовательского интерфейса в операционной системе Android, который можно добавить на рабочий стол для быстрого доступа к тем или иным функциям соответствующего приложения. В данной статье мы разберемся, как собственноручно создать свой виджет.
Что виджет представляет из себя конструктивно? Виджет нужен для отображения той или иной информации, связанной с приложением, к которому он относится, или же для оперативного взаимодействия с данным приложением напрямую через рабочий стол. Самый простой пример – часы на рабочем столе. Естественно, виджеты без труда можно добавлять или удалять с рабочих столов.
Качественно выполненные виджеты заметно оптимизируют взаимодействие с устройством. Более того, очень часто самые удобные виджеты занимают на рабочем столе минимум пространства, и при этом наиболее информативны. Практически любой пользователь будет стараться разместить на рабочих столах своего Android-гаджета максимальное количество информации, и важный момент заключается в том, что пространство ограничено.
Начнем создание виджета мы с дизайна. Благо, компания Google предоставила весьма полезные UI Guidelines для разработчиков программного обеспечения, где подробно описан процесс создания дизайна и основные принципы эргономичности. Есть также и отдельная официальная инструкция для создания виджетов, с которой можно ознакомиться по ссылке: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html.
Виджет, занимающий одну «клетку» на рабочем столе, имеет разрешение 80х100 точек, соответственно, для создания продолговатый виджет длиной в 4 клетки и высотой в одну, то нужно, соответственно, 320х100 пикселей. Такой размер мы и возьмем за основу создаваемого нами виджета.
Теперь виджет нужно нарисовать. В принципе, виджет вполне может и не иметь никакой графической части, и отображать только текст или элементы управления, без фона и рамки, но, естественно, красивый и приятный глазу виджет просто обязан иметь качественный дизайн. Поэтому нарисуем фон. За основу возьмем фон из упомянутого выше UI Guideline. Открываем доступную нам заготовку в Photoshop или другом графическом редакторе и делаем всё, что заблагорассудится, после чего сохраняем полученное изображение в формате .png. Нужный нам формат PNG-24, с 8-битным цветом и прозрачным фоном. Вот и готова основа для нашего виджета.
Теперь перейдем к созданию программной части. Виджет может не иметь программной части. Проще говоря, в меню добавления виджетов он будет, но в основном меню приложений – нет. Мы создадим виджет именно такого типа. Создаем новый проект, и называем его для удобства так, чтобы основной класс имел имя widget.java.
Редактируем AndroidManifest.xml. Объявляем наш виджет:
Теперь редактируем widget.java. Тут необходимо описать, как будет реагировать виджет на различные условия. Класс AppWidgetProvider имеет такие методы:
onUpdate – метод вызывается при создании виджета, а также по истечении заданного времени. Время задается в конфигурационном файле данного виджета. Отметим, что используется чаще всего.
onDeleted – метод выполняется при удалении виджета с рабочего стола.
onEnabled – метод вызывается при первой активации виджета. Но если добавляется еще один точно такой же виджет, данный метод уже не выполняется.
onDisabled – метод выполняется тогда, когда удаляется последняя копия виджета с рабочего стола. Соответственно, данный метод является обратным onEnabled.
onReceive – метод вызывается одновременно со всеми остальными. Зачастую не используется вообще.
Сильно углубляться в программную часть виджета мы не будем, а потому не будем переполнять наш пример какими-либо обработчиками, а просто реализуем весь функционал посредством Layouts. Необходимо следующим образом объявить класс AppWidgetProvider:
package com.example.widget;
import android.appwidget.AppWidgetProvider;
public class widget extends AppWidgetProvider{
}
Далее, описываем наш виджет – это нужно для того, чтобы мобильный аппарат понимал, с чем имеет дело. Для этого нужно создать папку xml в папке res. В ней создаем файл с именем widget_info.xml. Открываем созданный файл и прописываем в него вот такой код:
Приведем краткое описание заданных параметров:
minWidth – минимальная необходимая для работы виджета ширина.
minHeight – минимальная необходимая для работы виджета высота.
updatePeriodMillis – период, за который происходит обновления виджета, указывается в миллисекундах. Параметр весьма полезен, так как по истечении указанного временного промежутка срабатываем метод onUpdate объекта AppWidgetProvider.
initialLayout – параметр указывает на ресурс с описанием интерфейса нашего виджета.
Формула подсчета размеров виджета имеет такой вид: (количество клеток * 74) — 2.
Приступим к описанию интерфейса создаваемого нами виджета. Здесь-то нам и пригодится созданный ранее фон. Импортируем рисунок фона в папку dwawable (или во всех три папки drawable для разных разрешений экрана). В папке layout создаем файл с именем widget.xml. Интерфейс описывается как для обычных Activity, но есть некоторые ограничения. Допустимы для использования такие элементы:
LinearLayout
FrameLayout
RelativeLayout
AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
Создадим LinearLayout, к которому применим созданную картинку-фон и добавим для примера AnalogClock. Сами часы в рамку не влезут, но как наглядный пример вполне сгодятся. Итак:
Вот, в принципе, и всё. После установки виджета на Android-девайс или на эмулятор, его можно установить на один из рабочих столов. После добавления будем созерцать следующее:
- Автор: Андрей
- Распечатать
fans-android.com
Ultimate custom widget (UCCW) — Инструмент для создания уникальных виджетов
Ultimate custom widget — это мощная бесплатная программа, которая позволяет создать собственный уникальный виджет для Android и использовать его впоследствии на рабочем столе. Программа позволяет создавать любые возможные виджеты с часами, датой, днем недели, погодой, уровнем аккумулятора и еще более 20 параметров на выбор.
Разработкой программы занимается студия VasuDev, которая, помимо основной программы, также сама создает разнообразные красивые виджеты, которые можно использовать, как в качестве примера для доработки, так и просто сразу загружать готовый виджет на рабочий стол. И если в программах HD Виджеты и Beautiful Widgets авторы ограничены своим визуальным стилем, то в Ultimate custom widget все ограничивается только вашей фантазией.
Как создать свой виджет для Android?
Процесс создания своего собственного виджета с помощью Ultimate custom widget — это очень трудоемкий и долгий процесс. В самом начале стоит определить с бекграундом, выбрать его цвет, прозрачность или вовсе его удалить. После этого в специальном меню необходимо проставить галочки напротив тех пунктов, которые будут использоваться в виджете. К примеру, это может быть комбинация из часов, минут, даты, дня недели, текущей погоды и уровня зарядки аккумулятора.
Самая сложная задача — это расставить все элементы по своим местам, подобрать к ним правильные параметры, цвета и сделать из этого всего цельную композицию. Советуем создавать виджет сразу под конкретные обои для достижения лучшего результата.
Как только вы создадите виджет, необходимо нажать на кнопку меню и сохранить его. Здесь же вы можете его экспортировать и отправить, к примеру, своим друзьям. Чтобы установить виджет, необходимо перетащить из списка виджетов подходящий для вашей сетки размер, после чего нажать на него и выбрать из списка нашу заготовку. После этого нас ждет еще секунда ожидания, после которой поделка будет красоваться на рабочем столе.
- Огромный набор объектов для создания виджетов (погода, часы, дата, зарядка аккумулятора, аналоговые часы, статический текст и многое другое);
- Возможность корректировки параметров и стиля для каждого элемента;
- Точечная подгонка размеров и расположения элементов;
- Возможность загрузки сторонних изображений и элементов интерфейса;
- Поддержка наложений и выбора приоритетов.
Итог. Ultimate custom widget — это удобный инструмент для создания виджетов практически любой сложности. Конечно, чтобы создать красивый и практичный виджет придется долго и упорно подгонять элементы и разрабатывать дизайн, в другом случае вы можете просто скачать готовые варианты от разработчика по этой ссылке.
Полезность 10/10
Юзабилити 6/10
Уникальность 10/10
Дизайн 8/10
app4smart.com
Написание виджета для Android
Виджеты для андроид — это маленькие приложения, которые могут быть размещены на рабочем столе вашего Android-устрйства. Виджет периодически получает новые данные и обновляет свой вид. Существует два метода обновления виджета, один из них основан на конфигурационных XML файлах, а другой основан на использовании Android-сервиса AlarmManager. Итак, сегодня мы пишем приложение для Android. Приступим.
В соображениях безопасности виджет не имеет собственного процесса, а запускается как часть рабочего стола. Поэтому виджеты используют RemoteViews для создания интерфейса. RemoteViews может быть запущен другим процессом с такими же правами как и обычное приложение. Таким образом, код виджета будет выполнен с правами объявляющего его приложения, а не с правами рабочего стола. После прочтения данной статьи рекомендую также ознакомиться с тем, как происходит создание анимации на Андроид.
Для создания виджета Android вам нужно: 1. Создать XML файл со слоем, в котором описывается внешний вид виджета. 2. Создать XML файл, в котором описываются свойства виджета (AppWidgetPrividerInfo). Например, размер или частота обновления 3. Создать BroadcastReceiver, который будет использован для обновления виджетов. Этот приёмник расширяет AppWidgetProvider, который обеспечивает жизненный цикл виджета.
4. Изменения в файле AndroidManifest.xml
Для регистрации виджета вы создаёте BroadcastReceiver, который фильтрует действия android.appwidget.action.APPWIDGET_UPDATE. Вы также можете указать мета-данные в атрибуте android_name=»android.appwidget.provider». BroadcastReceiver также получает метку и иконку, которые будут доступны в списке виджетов на Android-утсройстве.
Ссылка на ресурс содержит ссылку на XML-файл с начальными установками для виджета. Конфигурация виджета согласно этим установка происходит до первого вызова функции update().
Виджет может использовать ограниченный набор элементов интерфейса. Для спецификации слоёв можно использовать FrameLayout, LinearLayout and RelativeLayout. Из элементов управления можно использовать AnalogClock, Button, Chromometer, ImageButton, ImageView, ProgressBar и TextView. В Android 3.0 доступны также GridView, ListView, StackView, ViewFlipper и AdapterViewFlipper.
Взаимодействие с элементами возможно только в обработчике OnClickListener.
Виджет будет занимать несколько ячеек на вашем рабочем столе. Ячейка обычно используется для размещения иконки одного приложения. Существует формула подсчёта размера, который будет занимать виджет: ((количество столбцов/строки)*74) — 2. В Android 3.1 виджеты могут иметь изменяемый размер, например, вы сможете их уменьшить или увеличить. Для включения этой возможности используйте атрибуты: android_resizeMode=»horizontal|vertical».
В конфигурационном файле виджета можно указать интервал обновления. Система будет просыпаться после этого интервала и вызывать ваш broadcast receiver для обновления виджета. Самый маленький интервал — это 180000 миллисекунд (30 минут). AlarmManager позволяет более эффективно использовать ресурсы и имеет более высокую частоту обновления.
Ваш BroadcastReceiver расширяет AppWidgetProvider. AppWidgetProvider — класс, который реализует метод onReceive(), извлекает требуемую информацию и вызывает соответствующий метод жизненного цикла виджета. onEnabled() — вызывается один раз, когда виджет был добавлен на рабочий стол onDisabled() — вызывается, когда последний экземпляр виджета был удалён с рабочего стола onUpdate() — вызывается при каждом обновлении виджета. onDeleted() — вызывается, когда виджет удаляется с рабочего стола
Теперь перейдём от теории к практике. Мы напишем виджет, который будет выводить новое случайное число при каждом нажатии на него.
- Создаём новый проект widget.com.com
- Создаем в каталоге «/res/drawable-mdpi» новый XML-файл с именем myshape.xml. В нём будет описываться задний фон нашего виджета.
- В каталоге «res/layout» объявим внешний вид и элементы управления в файле widget_layout.xml
- Создадим файл с настройками виджета «widget_info.xml», выбрав File -> New -> Android -> Android XML File
- Создадим BroadcastReeceiver, который будет вызываться для обновления.
- Изменим файл AndroidManifest.xml, указав, что виджет будет принимать событие «android.appwidget.action.APPWIDGET_UPDATE», иметь настройки «@xml/widget_info» и обрабатываться сервисом «.UpdateWidgetService».
- Создадим новый класс MyWidgetProvider, который является наследником AppWidgetProvider. В нём будет происходить обработка событий жизненного цикла виджета.
- Создадим класс UpdateWidgetService. Он будет сервисом, в котором будут генерироваться случайные числа и выводится на сам виджет.
Запущенный однажды сервис будет обновлять все виджеты. Вы можете кликать по одному или по нескольким виджетам.
Это всё. Если будут вопросы или предложения по исправлению и дополнению, то обязательно отпишитесь в комментариях.
ЗЫ: пост написан под воздействием горячего шоколада и статьи http://www.vogella.de/articles/AndroidWidgets/article.html. ЗЫ2: исходный код создания виджета под Android
mobile-develop.ru
КАК УБРАТЬ РЕКЛАМУ В ИНТЕРНЕТ БРАУЗЕРЕ? КАК ОТКЛЮЧИТЬ РЕКЛАМУ В ИНТЕРНЕТЕ?
Для того чтобы сделать виджет в Androidвовсе не обязательно уметь программировать. Есть несколько приложений-конструкторов, которые позволяют легко нарисовать виджет и дать ему нужный функционал.
Minimalistic Text
Приложение позволяет создавать минималистичные виджеты, состоящие из текста и чисел. Несмотря на название, у таких виджетов есть весьма широкие возможности.
После установки добавьте на рабочий стол виджет Minimalistic Text требуемого размера. Откроется окно настройки виджета.
В настройках можно выбрать фон, ориентирование, шрифт, действие по клику и т.д. Также в настройках есть предопределенные макеты для наполнения:
- Время.
- Дата.
- Уровень заряда.
- Температура.
Дополнительные возможности по наполнению виджета доступны при создании своего собственного макета виджета:
- Текст.
- Свободное/занятое место на карте SD.
- Время работы системы.
- Количество переданных данных по мобильной сети и не только.
- Название сети Wi-Fi, IP адрес в сети Wi-Fi.
- Нагрузка на CPU.
- Количество занятой оперативной памяти.
Все величины можно выводить в тексте и в цифрах.
Ultimate custom widget (UCCW)
Данное приложение позволяет делать виджеты не только из текста, но и с графическим содержанием.
При запуске открывается окно создания виджета. Чтобы добавить на виджет объект нажмите кнопку +/- вверху. Чтобы всяким образом перемещать и редактировать его нажмите вверху на кнопку «Select Object» и выберите добавленный объект.
На виджетах можно размещать такие объекты:
- Время, дату и день недели.
- Аналоговые часы.
- Пользовательский текст.
- Уровень заряда в цифрах или же графическое отображение оного.
- Всю информацию о погоде — температуру, влажность, скорость ветра и т.д.
- Геометрические фигуры.
- Картинки.
- Количество непрочитанных писем Gmail, sms и пропущенных звонков.
- Время, когда зазвонит будильник.
Каждый элемент можно вращать, растягивать, сгибать и менять ему цвет. Разумеется, можно настроить действие по клику (Select Object->Hotspots). Поддерживается импорт и экспорт созданных виджетов.
Как сделать виджет в смартфоне либо планшете под управлением Android.
gadget-media.ru