- Изменение настроек и размера виджета
- Меню настроек виджета
- Как изменить размер виджета
- Как переместить виджет на другой рабочий стол
- Полный список
- Превью
- Изменение размера
- Экран блокировки
- Ручное обновление виджетов
- Как правильно установить размер виджета?
- 1 ответ 1
- Как изменить размер виджетов на Android
- Изменить размер виджетов
- Совместимые телефоны
- Сначала добавьте виджет
- Увеличьте его размер
- Использование виджетов на iPhone и iPod touch
- Добавление виджетов на экран «Домой»
- Добавление виджетов в представление «Сегодня»
- Редактирование виджетов
- Использование стопок виджетов
- Создание смарт-стопки
- Создание собственных стопок виджетов
- Редактирование стопки виджетов
Изменение настроек и размера виджета
В одной из предыдущих статей мы уже рассмотрели как добавлять и удалять виджеты в смартфоне HTC. Однако помимо этих действий виджеты можно настраивать, а также изменять их размер.
Меню настроек виджета
- На одном из рабочих столов, где находится виджет, жмем и удерживаем его.
- После появления вверху слева кнопки «Настроить», перетягиваем на нее виджет, чтобы кнопка стала красной (цвет может быть и другой, в зависимости от установленной в HTC темы оформления).
- Производим необходимые настройки.
*Зачастую меню настроек виджета аналогично такому же меню его приложения.
*Если кнопка настроек не изменяет цвет, значит она неактивна и настройки произвести нельзя.
Как изменить размер виджета
- Нажмите и удерживайте виджет на одном из рабочих столов, где он расположен.
- Отпустите палец или стилус.
- Вокруг виджета появится рамка. Растяните ее до нужного размера, а затем отпустите палец (стилус).
*Рамка появляется только в том случае, если изменение размера виджета возможно.
*Предельные размеры виджета ограничены программно, поэтому их можно менять только в этих рамках.
Как переместить виджет на другой рабочий стол
- Нажмите и удерживайте виджет.
- Не отпуская палец, перетяните его вправо или влево на самый край экрана, чтобы открылся новый рабочий стол.
- На нужном столе отпустите виджет.
*Не на все рабочие столы можно переместить виджет. Это сделать нельзя если не хватает свободного места или весь стол занят окном приложения или службы, например HTC BlinkFeed.
Источник
Полный список
— рассмотрим прочие возможности виджета: превью, изменение размера, экран блокировки, ручное обновление
В прошлых уроках мы рассмотрели все основные моменты, касающиеся виджетов. Осталось поговорить о нескольких небольших, но полезных возможностях.
Не буду создавать отдельный проект под это, покажу только фрагменты кода и скрины. Знаний, полученных в предыдущих уроках, должно хватит, чтобы понять, о чем идет речь.
Превью
Когда вы хотите добавить виджет, вы открываете экран выбора и видите там список виджетов с названиями и картинками. По умолчанию, вместо картинки идет иконка приложения. А можно поставить туда свое изображение.
Я сделаю простой виджет, показывающий время при обновлении
Мой виджет называется WidgetFeatures и в списке виджетов он выглядит так:
В качестве превью-изображения сейчас используется иконка приложения и это не очень информативно.
Поставим свою картинку. Я сделаю скрин Home-экрана с моим виджетом, затем обрежу картинку до такого состояния
закину в папку res/drawable и пропишу ее в файле метаданных виджета
Теперь виджет в списке будет выглядеть так:
И пользователь имеет примерное представление, как будет выглядеть виджет после установки.
Изменение размера
Вы можете предоставить пользователю возможность менять размеры виджета.
Для этого необходимо прописать в метаданных:
В этом случае виджет будет способен менять размер и по вертикали и по горизонтали. Если вам нужно только одно направление, оставьте только его в значении атрибута.
Вы можете растянуть виджет на сколько это позволит свободное место на экране. Но не сможете сделать его меньше, чем изначально указанные размеры minHeight и minWidth.
Для этого в API Level 14 появляются еще два атрибута для метаданных: minResizeWidth и minResizeHeight. Они как раз и ставят минимальные значения для изменения размера виджета, а атрибуты minHeight и minWidth становятся значениями по умолчанию и используются для задания первоначального размера виджета при добавлении.
В API Level 16 в классе провайдера появляется метод onAppWidgetOptionsChanged. Метод срабатывает, когда вы меняете размер виджета. Он предоставляет вам Bundle с данными (тип — int, единицы измерения — dp) о новом размере. Данные можно извлечь с помощью этих ключей:
Как видно по названию переменных, система возвращает не точное значение новой ширины или высоты виджета, а диапазон с минимальным и максимальным значением. Не знаю каким образом формируются эти значения, но нам предлагается использовать их, чтобы подстраивать содержимое виджета под новые размеры.
Для примера выведу эти цифры в виджет.
Вот виджет шириной в две ячейки и высотой в одну (2х1).
А вот, что будет, если его растянуть до 3х2
Растянем до 4х3
Данные о текущем размере виджета также можно получить с помощью метода getAppWidgetOptions класса AppWidgetManager. Он вернет вам Bundle с этими же параметрами.
Экран блокировки
Атрибут widgetCategory может определять возможность размещения виджета не только в Home (home_screen), но и на экране блокировки (keyguard) .
В этом случае виджет появится в списке виджетов для экрана блокировки
И после добавления он будет виден
Чтобы программно определить где расположен виджет, используйте снова метод getAppWidgetOptions. Он вернет вам Bundle, из которого по ключу OPTION_APPWIDGET_HOST_CATEGORY можно вытащить категорию (тип int). Она может быть равна либо WIDGET_CATEGORY_HOME_SCREEN (home), либо WIDGET_CATEGORY_KEYGUARD (экран блокировки).
В метаданных вы также можете отдельно задать layout, использующийся для виджета на экране блокировки. Это атрибут android:initialKeyguardLayout. Аналогично атрибуту android:initialLayout указываете там layout-файл. Правда, у меня он почему-то не сработал и виджет с экрана блокировки использовал тот же layout, что и виджет на экране Home. Я не понял, почему.
Ручное обновление виджетов
Обычно система сама посылает broadcast-сообщения о том, что пора обновлять виджет, и минимальный порог, который она позволяет задать – это полчаса. Мы можем обойти это и назначить свое расписание. Есть несколько вариантов, как это организовать и что откуда вызывать. Я покажу один из них.
Все это делается в классе провайдера.
Далее пишем в методах onEnabled и onDisabled:
Содержимое двух этих методов почти одинаково, только первый запускает посылку broadcast сообщения каждую минуту с помощью AlarmManager, а второй отменяет это.
В методе onReceive пишем:
где updateWidget – это ваш метод, в котором прописана логика обновления виджета.
Здесь мы ловим broadcast, который каждую минуту шлет AlarmManager. Далее создаем ComponentName, соответствующий провайдеру виджета нашего приложения и, используя его, получаем список ID виджетов с помощью метода getAppWidgetIds. Далее этот список прогоняем через метод обновления.
И не забудьте поставить в метаданных атрибут updatePeriodMillis = 0, чтобы выключить для виджета рассылку broadcast-сообщений от системы.
Тем самым, мы задали свое расписание обновления. Оно включится при создании первого экземпляра виджета (или при старте системы, если есть экземпляры виджета) и выключится при удалении последнего экземпляра.
На следующем уроке:
— создаем ключи и подписываем приложение
Присоединяйтесь к нам в Telegram:
— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование
— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме
Источник
Как правильно установить размер виджета?
Мне необходимо сделать виджет размером 4×1 ячейки. Для этого я использую простой код:
Я тестирую его на двух виртуальных устройствах Genymotion:
- Google Nexus 7, 800×1280, Android
- 4.4.4 Samsung Galaxy S5, 1080×1920, Android 4.4.4
И получаю два разных результата:
При android:minWidth=»250dp» и android:minHeight=»40dip» (новая формула):
- Google Nexus 7 — 3×1
- Samsung Galaxy S5 — 4×1
При android:minWidth=»292dp» и android:minHeight=»70dip» (старая формула):
- Google Nexus 7 — 4×1
- Samsung Galaxy S5 — 4×2
Как видно, размер виджета зависит от разрешения экрана и в любом случае высчитывается некорректно (либо 3×1, либо 4×2). Так как же правильно установить размер виджета?
1 ответ 1
Я так понимаю, здесь дело не в разрешении, а в разметке устройства.
Действительно, вы взяли хороший пример для того, чтобы проверить default-размер виджета при его создании, так как одно устройство типа phone и разметка скорей всего у него 4х4, а другое типа tablet, там разметка другая, возможно 6х6.
Google guide предлагает формулу: 70хN-30
гдe N — количество столбцов или строк.
Например, для того, чтобы сделать длину виджета 4 ячейки: 70х4-30=250dp — устанавливаем android:minWidth=»250dp» — это действительно работает на телефонах, но как только мы пробуем поставить на планшет, то возникает проблема.
Я по своему небольшому опыту могу предложить решение:
- android:minWidth=»1″ android:minHeight=»1″ устанавливаем такие параметры, и там же прописываем android:resizeMode=»horizontal|vertical»
Тогда вы получаете виджет с 1 ячейкой и можете растянуть до нужного размера, такой пример имеет свои недостатки но работает. - Можете разделить установку виджета, для телефона или планшета.
Для телефона 4х4 используем формулу 70хN-30, для планшета я использовал значение 96х96dp это полный размер ячейки.
То есть, в вашем примере, для Google Nexus 7, чтобы сделать виджет с изначальным размером 4х2, нужно установить значения:
Все кончено зависит от конечного результата, но надеюсь это Вам хоть немножко поможет.
Источник
Как изменить размер виджетов на Android
Наш мобильный виджеты являются шагом вперед за пределы простых значков прямого доступа. С их помощью мы можем запускать основные функции приложений, просто прикоснувшись к ним. Однако даже виджеты можно настроить, изменив их размер на придают им большее или меньшее значение по сравнению с другими.
Виджеты — это ярлыки для функций во многих приложениях. Таким образом, мы можем активировать определенный будильник, выполнить прямой поиск в Google Assistant или получить проигрыватель в реальном времени нашего любимого музыкального проигрывателя. Практически в любом приложении есть свои виджеты. Меньшее количество людей может знать, что мы также можем изменить их размер , чтобы сделать их важнее других или просто выделить их каким-либо образом.
Изменить размер виджетов
Совместимые телефоны
Возможность изменять размер виджетов возможна на многих мобильных устройствах, но не на всех. Все будет зависеть от уровня настройки , его версия и даже версия Android. Однако многие устройства таких брендов, как Xiaomi, OPPO, Samsung, vivo и многие другие допускают эту модификацию. Однако избавление от сомнений займет всего несколько секунд.
Сначала добавьте виджет
Чтобы изменить размер виджета, мы должны предварительно выбрать его и разместить на главном экране. Для этого нажимаем на рабочий стол и касаемся «виджетов». После этого мы выбираем желаемое приложение и любимый виджет из вариантов, которые предлагает нам приложение. После этого виджет будет зафиксирован на рабочем столе.
Увеличьте его размер
Теперь известные нам параметры позволят нам нажать и удерживать значок, чтобы переместить виджет на рабочий стол, изменить его с экрана или даже удалить. Однако, чтобы изменить его размер, нам придется оставить его нажатым, пока он не будет выделен, и ничего не делать. Позже мы увидим, что края виджета подсвечиваются. Теперь мы можем перетащить эти границы из желаемого угла, чтобы увеличить или уменьшить виджет.
На изображении, которое сопровождает эти строки, мы видим пример виджета Shazam, сделанного гигантским на специальном экране. Это означает, что варианты очень широки и будут зависеть от наших вкусов и важность, которую мы придаем каждому виджету. Однако мы должны иметь в виду, что не все виджеты совместимы с изменением размера, поэтому мы можем найти исключения среди наших установленных приложений.
Источник
Использование виджетов на iPhone и iPod touch
С помощью виджетов можно своевременно получать информативные уведомления от избранных приложений.
В iOS 14 можно использовать виджеты на экране «Домой», чтобы нужная информация всегда была у вас под рукой. Или же можно использовать виджеты из представления «Сегодня», смахнув пальцем вправо на экране «Домой» или экране блокировки.
Добавление виджетов на экран «Домой»
- На экране «Домой» нажмите и удерживайте виджет или пустую область, пока приложения не начнут покачиваться.
- Нажмите кнопку «Добавить» в верхнем левом углу.
- Выберите виджет, выберите один из трех размеров виджета, затем нажмите «Добавить виджет».
- Нажмите «Готово».
Также можно добавить виджеты из представления «Сегодня». В представлении «Сегодня» нажмите и удерживайте виджет, пока не откроется меню быстрых действий, затем нажмите «Изменить экран «Домой»». Перетащите виджет к правому краю экрана, пока он не появится на экране «Домой», затем нажмите «Готово».
Добавление виджетов в представление «Сегодня»
- В представлении «Сегодня» нажмите и удерживайте виджет или пустую область, пока приложения не начнут покачиваться.
- Нажмите кнопку «Добавить» в верхнем левом углу.
- Прокрутите вниз, чтобы выбрать виджет, затем выберите один из трех размеров виджета.
- Нажмите «Добавить виджет», затем нажмите «Готово».
Редактирование виджетов
В iOS 14 можно настраивать виджеты. Например, можно отредактировать виджет «Погода», чтобы увидеть прогноз для вашего текущего или другого местоположения. Вот как это сделать.
- Нажмите и удерживайте виджет, чтобы открыть меню быстрых действий.
- Коснитесь значка «Редактировать виджет» .
- Внесите нужные изменения, затем нажмите за пределами виджета, чтобы выйти из режима редактирования.
Также можно перемещать виджеты, чтобы разместить нужные там, где их легче найти. Просто нажмите и удерживайте виджет, пока он не начнет покачиваться, а затем переместите виджет по экрану.
Использование стопок виджетов
В iOS 14 можно использовать стопки виджетов, чтобы сэкономить место на экране «Домой» и в представлении «Сегодня». Вы можете использовать смарт-стопки или создавать собственные стопки виджетов.
Создание смарт-стопки
Смарт-стопка — это предварительно созданный набор виджетов, который отображает нужный виджет в зависимости от таких факторов, как ваше местоположение, активность или время суток. Смарт-стопка автоматически перемещает виджеты, чтобы отображать наиболее актуальную информацию в течение дня. Чтобы создать смарт-стопку, выполните следующие шаги.
- На экране «Домой» или в представлении «Сегодня» нажмите и удерживайте пустую область, пока приложения не начнут покачиваться.
- Нажмите кнопку «Добавить» в верхнем левом углу.
- Прокрутите вниз и нажмите «Смарт-стопка».
- Нажмите «Добавить виджет».
Создание собственных стопок виджетов
- На экране «Домой» или в представлении «Сегодня» нажмите и удерживайте приложение или пустую область, пока приложения не начнут покачиваться.
- Перетащите виджет поверх другого виджета. Вы можете добавить в стопку до 10 виджетов.
- Нажмите «Готово».
Редактирование стопки виджетов
- Нажмите и удерживайте стопку виджетов.
- Нажмите «Редактировать стопку». Здесь вы можете изменить порядок виджетов в стопке, перетащив значок сетки . Вы также можете включить функцию «Смарт-замена», если вы хотите, чтобы iOS показывала соответствующие виджеты в течение дня. Или же смахните влево по виджету, чтобы удалить его.
- По окончании нажмите .
Чтобы использовать смарт-стопки или создавать собственные стопки виджетов, необходима ОС iOS 14.
Источник