Программа стрелка для андроид настройка: Как работают приложения-антирадары семейства Стрелка

Содержание

Как работают приложения-антирадары семейства Стрелка

Для начала необходимо загрузить базу объектов, и периодически (раз в несколько дней) ее обновлять.
Затем садитесь в машину, запускаете программу, нажимаете кнопку Старт и дожидаетесь сигнала. В этот момент программа может попросить вас включить геолокацию (GPS или местоположение).
антирадар Strelka для телефонов, коммуникаторов, планшетов
В процессе движения приложение отслеживает объекты (камеры, радары, посты, и т.п.), попадающие в сектор по ходу движения (как на рисунке), выясняет тип объекта (камера, пост, неровность…), считывает установленные вами настройки по этому типу и выдает уведомление. (подробнее про обнаружение, лучи, GPS и т.п. рекомендуем прочитать здесь )

Уведомление состоит из:
1. Визуальной части (окно)
2. Звука
3. Голосовой фразы
4. Бипера.
5. Вибрации.

Приложение понимает камеры, фотографирующие задний номер (говорит «…в спину»), камеры расположенные на параллельных дорогах (говорит «…на шоссе» или «…на дублере»), камеры измеряющие несколько правонарушений (говорит «…и комплекс контроля»)

Каждая из составляющих детально настраивается.

антирадар Strelka для телефонов, коммуникаторов, планшетов антирадар Strelka для телефонов, коммуникаторов, планшетов антирадар Strelka для телефонов, коммуникаторов, планшетов

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

Принцип работы программы Стрелка при движении на камеру.

При достижении установленной в настройках дистанции до радара срабатывает первое уведомление. В зависимости от настроек проигрывается выбранный звук и голосовая фраза «Внимание-Объект-Расстояние-в метрах-Ограничение-Скорости». Далее об объекте напоминает бипер, для которого можно настроить частоту и скважность (длительности сигнала и паузы).
Далее эта последовательность повтряется для каждого из уведомлений (если их несколько для данного типа объектов).
Например, если первое уведомление установлено на 1600м, второе на 750, третье на 300, то картинка будет такая:
антирадар Strelka для телефонов, коммуникаторов, планшетов
Если вы полностью выключаете одну из дистанций, то уведомление выдано не будет и бипер на этой дистанции также не будет работать. На рисунке ниже выключено второе уведомление.
антирадар Strelka для телефонов, коммуникаторов, планшетов

Особенности
А) Если по направлению движения находятся несколько объектов, то звуковые уведомления будут выдаваться последовательно. Например — впереди пост и камера.В этом случае последовательность будет такая: пост1,камера1,камера-бипер, пост2, камера2, камера-бипер, пост3,камера3, камера-бипер
антирадар Strelka для телефонов, коммуникаторов, планшетов
При этом во время работы бипера будет отображаться камера и бипер работать с настройками камеры.
Еще раз на примере (к вопросу о «проглатываниях камер»):
Предположим впереди две камеры и разница между ними как-раз такая-же как разница между первым и вторым предупреждением.
Тогда:
- Идет уведомление о второй камере (например 900м)
- Идет уведомление о первой камере (например 1800м)
- Отображаем вторую с настройками второго уведомления (900…300) с бипером
Это логично, опаснее то ближайшая. Но и о первом объекте предупредить надо, чтобы потом не было желания разгоняться.
B) Ряд объектов имеют «приоритеты». Т.е. если в одной точке находится пост и Стрелка, то первым всегда будет выдаваться уведомление о Стрелке. Приоритеты идут в таком порядке: Стрелки, камеры, камеры общественного транспорта, все остальные объекты. Так что в первом примере первое уведомление будет о камере.
С) При отсутствии движения все уведомления отключаются. Это логично — вы же не хотите в пробке или на светофоре слушать бесконечное пиканье бипера. Минимальную скорость отключения предупреждений можно установить по каждому из объектов кликнув на слово «Минимальная скорость». По умолчанию — 20кмч (для камер общественного транспорта 5км/ч, для «лежачих полицейских» 10км/ч).
Не рекомендуется ставить это значение меньше 10км/ч, т.к. точность измерения направления движения ухудшается и возможны ложные срабатывания на низких скоростях. На аппаратах с поддержкой двух систем (GPS-ГЛОНАСС) можно ставить вплоть до 5кмч.
D) При изменении направления движения список камер может изменяться и даже пропадать. Это логично, т.к. вы могли повернуть на перпендикулярную улицу и уведомления стали неактуальны. Но возможно это и при перестроениях. Рисунок ниже объясняет суть.
антирадар Strelka для телефонов, коммуникаторов, планшетов
E) Точность определения зависит от ширины сектора обнаружения, который настраивается выбором профилей «Трасса»-«Город»-«Мегаполис». Чем уже угол — тем меньше ложных срабатываний, но и есть риск пропуска камер. Также в профиле можно менять полностью настройки объектов.
антирадар Strelka для телефонов, коммуникаторов, планшетов

Дополнительные настройки уведомлений

Минимальная скорость — уже описано выше.
Только при превышении — можно задать программе — уведомлять об определенном объекте только в случае превышения скорости (нарушения).
Оптимальные дистанции — устанавливаются кураторами базы в зависимости от дорожных условий. Например: стрелка за поворотом или меряет в населенном пункте, который начинается за 300м.
Для камер контроля полосы общественного транспорта — только по будням.

О настройке приложения Strelka для конкретных платформ читайте в соответствующих разделах:

Настройки антирадаров Стрелка и Антирадар№1 в Android

Основные проблемы при работе на последних версиях Андроид связаны с:
— настройкой геолокации
— экономией батареи (различные режимы, опции, разбросанные в разных меню)
— разрешениями (в т.ч. на всплывающие окна)
Попробуем обобщить всё это

1. Геолокация

В настройках своего смартфона зайдите в раздел «Конфиденциальность и безопасность» , там Вас интересуют пункты Геоданные и Разрешения приложений.
В некоторых телефонах раздел «Геолокация» (еще может называться «Локация», «Геоданные» или «Местоположение») вынесен отдельно.
Для Андроид 10 В Геолокации нужно выбрать «Всегда» или «Разрешить в любом режиме»

Для более ранних Андроид

В Геоданных нужно проверить, чтобы метод обнаружения включал в себя слово GPS. И в разрешениях проверить, что у Стрелки есть доступ к геоданным.

2. Разрешения

Настройки смартфона — раздел «Приложения» — найдите приложение (например Стрелку)
Зайдите в раздел «Разрешения».
1. Основные разрешения программа запросит у вас в самом начале использования. Но если что-то запретили — необходимо разрешить «Данные о местоположении» и «Телефон». Внешне выглядит так, как на скриншотах или похоже.

2. Необходимо разрешить использование всплывающих окон. Как только разные производители прошивок их не называют:
- Поверх всех
- Выше всех
- Поверх других приложений
- Всегда сверху
- и т.п.

3. Уведомления

Обязательно нужно разрешить уведомления.
Поскольку антирадары в-основном работают в фоне (т.е. когда другое приложение на экране или экран выключен) разработчик обязан выдать в «шторку» информацию о фоновом процессе. Если вы это запретите — в фоне работать не будет.

Настройки смартфона — раздел «Уведомления» — найдите приложение (например Стрелку)

1. Обязательно нужно разрешить уведомления
2. Раздел «состояние обнаружения» — разрешить и хотя-бы «отображать в строке состояния» + «на экране блокировки». Если это не разрешить — приложение будет засыпать через 1-2минуты.
Обязательно разрешить все типы уведомлений! Иначе в фоне будет «засыпать». Это к вопросам «засыпает через 2-3минуты». (второй скриншот)
Также, если отключить опции «экран блокировки» или «строка состояния» — есть вероятность, что система «заморозит» работу в фоне через некоторое время или работу при выключенном экране.
3. Strelka — см. скриншоты. Это сами предупреждения о камерах.

К-сожалению скриншоты на разных моделях смартфонов выглядят по-разному. Буду благодарен, если пришлёте свои — выложу их для остальных пользователей.

Для Андроид 8 и 7 — Все, что отмечено на скриншотах должно быть разрешено.

Если вы включите две нижние галки — уведомлений на экране блокировки не будет!
В Андроид 6.0.1 есть особенность: в какой-то момент при установке новой версии галочка «разрешить во всплывающих окнах» выключается. Нужно включить обратно.

4. Оптимизация батареи

Это самая пакостная штука.
Дело в том, что Андроид первым делом замораживает или вообще выгружает из памяти приложения, работающие в фоне, а особенно использующие геолокацию. Т.е. антирадары — первые кандидаты на отправку в «глубокий сон».
Чтобы этого не происходило — нужно отключить всякого рода оптимизации энергосбережения, коих с каждой версией Андроид становится всё больше и больше.

Зайдите в приложение.
ОПЦИИ — Дополнительно — Отключить оптимизацию.
Сверху выберите «все приложения».
Затем найдите Стрелку и запретите для нее оптимизацию.

Для смартфонов Huawei есть свои нюансы.
Для смартфонов Xiaomi есть свои нюансы.

Для Андроид 6-8, если сдвинуть сверху вниз — появится шторка. Там нужно отключить режим экономии энергии, т.к. в нем Андроид замораживает фоновые программы. Также, можно отключить оптимизацию энергосбережения для приложения антирадара (например Стрелки)

и также, чтобы приложение (например Стрелка) было в списке исключений при энергосбережении

Мастер настройки уведомлений по объектам приложения Антирадар Стрелка

— Как быстро настроить Антирадар Стрелка.
- Как выключить вибрацию или бипер или звук сразу для всех камер
- Как установить малое окно для всех или нескольких объектов

Для облегчения настройки уведомлений по камерам и объектам предлагаем использовать специальный мастер. Он позволяет выбрать группы радаров/объектов, один или несколько профилей и настроить для них основные опции.

Обращу внимание, что Мастер только применяет настройки к группе объектов. Сам по себе он не сохраняется. То есть, вы выставляете все параметры по инструкциям ниже, проверяете, затем нажимаете «Применить». В этот момент каждому из выбранных объектов прописываются установленные настройки, а содержимое этого окна (Мастера) переходит в начальный вид.
Результат применения настроек можно посмотреть в общем списке (второй скриншот).

Подготовка мастера (выбор основных параметров)

Сначала нужно выбрать список профилей, группу объектов и номера уведомлений. По-умолчанию установлены все (как на третьем скриншоте вверху), т.е. если вы примените мастер сразу, то будут задействованы все типы объектов во всех профилях и для каждого из трех предупреждений. Этим можно пользоваться, если, например, вы хотите выключить вибро вообще или задать вертикальное окно или выстроить единую голосовую фразу.
Чаще бывает нужно работать с группами объектов. Например, для всех типов камер и постов ДПС установить определенный звук, а для опасностей другой звук. Или в профиле Трасса для всех объектов сделать большое окно, а для Города малое или вертикальное.
На скриншотах показаны варианты применения мастера:

Выбор значений для объектов

После установки варианта применения можно непосредственно менять настройки.
1. Дистанция — Задается по принципу «Ближе-Дальше» относительно установленной по-умолчанию
1.1 «Оптимальная дистанция» — рекомендованная кураторами. Суть в том, что камера может стоять за поворотом, при въезде в населенный пункт и т.п., то есть измеряемый коридор 200-300м и нет смысла предупреждать о ней слишком заранее.
2.Тип фонового окна.
3. Звук уведомления. По умолчанию установлены Звук1-Звук2-Звук3 для дальнего-среднего-ближнего уведомлений. Вы можете выбирать из 40 встроенных звуков или устанавливать свой звук (предварительно нужно загрузить в виде файла wav-44100-16-mono в каталог Android/data/com.ivolk.StrelkaGPS/files/strelka/uservoices). Для конвертации можно воспользоваться программой winamp или бесплатным сервисом в интернете

4. Голосовая фраза — строится из слов «Внимание», тип объекта (например «Комплекс контроля»), Расстояние, «Ограничение» и величина ограничения скорости. С помощью галочек можно настроить какие из слов использовать для построения фразы.
5. Бипер — можно только включать и выключать в мастере. Детальная настройка бипера производится в каждом из объектов.
6. Вибрация.

7. При превышении — задается величина превышения относительно разрешенной скорости, выше которой будут появляться окно/голос/бипер.
Например, на рисунке, до превышения (на 1км/ч) — ничего нет, при превышении до 10км/ч — окно без звука. Звук выдается при превышении на 11км/ч, бипер пикает при превышении на 20км/ч.
Чтобы задавать величину превышения по 1 нужно долго нажимать на кнопки увеличения или уменьшения.

Режим «при превышении» работает при ==Превышении скорости выше той, что меряет камера впереди==!!
То есть — например, ставите уведомление +1км/ч, звук +10км/ч, бипер +19км/ч.
Стрелка на 100км/ч (МКАД) — окно появляется при 101км/ч, голос говорит при 110км/ч, а бипер пикает при 120км/ч,
Т.е. как-только пошли под штраф — запикал бипер.
Снижаете обратно — бипер выключился.
Опять разогнались — запикал.
Стрелка на 60км/ч (в городе) — окно появляется при 61км/ч, голос после 71, бипер пикает при 80км/ч,
Стрелка на 80км/ч (ТТК) — окно появляется при 81км/ч, голос после 91, бипер пикает при 100км/ч,
и так далее


8. Только камеры «в спину» — опция для мотоциклистов. Будет предупреждать только о камерах, снимающих задний номер.
9. Минимальная скорость — Ниже этой скорости уведомлений по данному объекту происходить не будет. Данная настройка полезна в пробках, т.к. не отвлекает водителя ненужными сигналами. Минимальное значение 5км/ч, ниже — технически невозможно.

Результат

После применения мастера — результат можно посмотреть в окне ОБЪЕКТЫ. Здесь-же можно зайти в детальные настройки по каждому из объектов для дальнейшего тюнинга.

Strelka FAQ — частые вопросы и ответы

Вопросы, которые подзадолбали авторов задаются с завидной регулярностью и ответы на них:

В моем городе не все камеры, пожалуйста добавьте…

Сразу хочется отметить, что мы продаем программу, а не базу. База «по-умолчанию» добавлена лишь для примера, хотя и поддерживается в актуальном состоянии. Вы можете загрузить любую «свою» базу. А можете добавить объекты в базу через rd-forum, они автоматически попадут в общую базу.

Я проехал под камерой, а программа не сработала

— Проверьте, включен ли GPS и приходит-ли нормальный сигнал (см.ниже) — зеленый значек.
— Загружена-ли база объектов?
— Проверьте, не установлена ли у вас опция «Только при превышении» для какого-либо из типов камер. Бывают случаи, что пользователи ставят «предупреждать только при превышении на 20км/ч, а сами едут с разрешенной скоростью или превышают на 10км/ч — естественно программа молчит.
— Не отключено-ли первое и/или второе уведомление?

Уведомления пропадают за 300метров (или за 1000м) и не появляются

Может быть две причины:
1. Выключено первое(второе) уведомление, при включенном третьем(втором) — как на рисунке. Так делать не рекомендуется. Если мешает звук — отключите его, поставьте маленькое окно и т.п., но не выключайте уведомление целиком.
2. Установлено «при превышении на XX км/ч» для одного из уведомлений (скорее всего для более ближнего), а Вы едете со скоростью ниже этого превышения. В этом случае рекомендуется ставить «при превышении» только на звуки.

Не могу скачать базу из интернета. Не могу зарегистрировать программу.

— Проверьте, есть ли доступ в интернет.
— Проверьте, не установлена ли у вас программа-файрвол, типа DroidWall. Если да — дайте права на выход в интернет для приложения Strelka.
— Проверьте, что в программе вы вводите тот-же логин на который вы покупали (в случае покупки не в Google-Play) или присылали нам.
— Выключены ли программы лакипатчер или аналогичные.

На прошивке MIUI не появляются окна-уведомления

Ввиду оооочень частых вопросов информация выделена в отдельный раздел

Смартфоны Sony и режим стамина

Информация здесь

На Андроид-6 не работает

В Android-6 появилось много пунктов в настройках приложений, выключая которые Вы можете нарушить работу программы. Это касается настройки разрешений и настройки геолокации (местоположение). Подробнее в этом разделе.

Автомагнитолы и ГУ

Если автомагнитола уходит в режим «глубокого сна», может помочь рецепт от пользователя ГУ navitop topway infiniti с 6м Андроидом
Настройки->Память-> background cleanup list
Снять галочку со Стрелки

При работе в фоне через некоторое время программа перестает работать

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

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

Владельцам HTC Desire

Поступает много жалоб на отсутствие сигнала GPS, плохой сигнал GPS, прыгание скорости, окошки появляются буквально на секунду и исчезают и тому подобное. Всему виной глюки датчика GPS, а точнее антенны. Пути решения:
1. Первый
Там два хлипких контакта-усика, которые прижимаются к пластиночкам на крышке. Пластиночки образуют кольцо вокруг вспышки, эдакая небольшая антенка. Так вот со временем (температура, тряска) контакты прижимались все хуже и хуже, периодически крышка деформировалась и наблюдались пароксизмы нормальной работы. Через некоторые время все возвращалось на круги своя. Я припаял к этим контактам колечко из медного провода и все стало работать отлично.
2. Другие
http://www.linux.org.ru/forum/mobile/7140236
http://4pda.ru/forum/index.php?showtopic=259509&view=findpost&p=10361061
http://www.htc-support.ru/forum/index.php?showtopic=19704
http://habrahabr.ru/qa/11681

Работа с китайскими коммуникаторами

В последнее время рынок заполонили китайские устройства с достаточно мощными и интересными характеристиками.
Однако процент брака в этих аппаратах значительно выше, чем у именитых производителей. Поскольку наша программа работает с модулем GPS, то мы провели детальный анализ именно в этом направлении. Спасибо Павлу Д и другим пользователям за терпение и помощь в обмене логами.
Итак, что выяснилось: в эти аппараты ставят отбракованные чипы, в результате чего модули GPS могут выдавать «генератор случайных чисел» с определенного момента, либо на некоторое время переставать ловить сигнал вообще. Первое вылечили, второе не лечится 🙁
1. Кривизна прошивки
Симптомы — статус в программе стабильно зеленый, не работает тест, не обнаруживаются камеры.
Глюк исправлен с версии 4.13, но нужно поставить галочку «вычислять скорость по координатам» в «Настройки GPS».
2. Неисправность GPS — модуля (см.ниже)

Так что учитывайте, что беря китайца — вы играете в лотерею с 9 выигрышных билетов из 10.
Главный расчет товарищей из поднебесной на то, что стабильность сигнала GPS никто проверять не станет.

Неисправности и глюки GPS модуля

Симптомы: Статус в программе переключается то в зеленый, то в желтый, либо постоянно желтый. C Андроида-5 То стрелочка, то три точки или постоянно три точки.
Как проверить: на улице(или в машине, но не в здании) запускаете программу, дожидаетесь, когда поймает GPS, далее заходите в раздел «РАЗНОЕ» — «GPS-информация» и видите такую картинку.
1. Строка «Обновлено» должна стабильно меняться каждые 1-2 секунды.
Если изменения идут раз в 3-5 секунд — это плохо, но еще нормально. Если следуют провалы более 7 секунд, то программа будет отображать потерю сигнала.
2. Индикатор «Точность» должен показывать не более 25м. Можно 30-50, но будут ухудшения в определении камер. Больше 50 — это очень плохо. Такое может быть при первом включении, но должно стабилизироваться через несколько минут

Причины некорректной работы геолокации GPS
1. Атермальные стекла или атермальная тонировка — в стекла или пленку добавляют металлические частицы, которые ухудшают прохождение сигнала от спутников. Для проверки — посмотрите сигнал вне автомобиля.
2. Плохой блок питания — часто китайские блоки питания грешат сильными наводками на смартфон и портят сигнал от спутников геолокации — проверяется легко — выдергиваете блок питания в автомобиле и проверяете сигнал, как описано выше.
3. Сильные наводки от какого-либо из устройств внутри автомобиля. Штатные системы обычно не мешают GPS сигналу, а вот нештатные могут
4. Неисправен модуль GPS в смартфоне — да, такое бывает, нечасто, но в опыте нашей работы с пользователями такое было и неоднократно, после замены смартфона по-гарантии вдруг все начинало работать.
Кстати, в смартфонах со съемной батареей это лечится вытаскиванием батареи на 1-2минуты. У меня лично один раз так заглючил самсунг ноте-2. Сейчас, к сожалению, многие аппараты идут с несъемной батареей 🙁
5. Во многих китайских устройствах нужно провести калибровку датчика через инженерное меню. Об этом читайте на 4pda.ru в ветках по своим смартфонам. Это несложно, но инструкции разные.

Сразу отвечу на многочисленные вопросы «А навигация работает». Она не работает, а «делает вид». В версии до 4.х Стрелка тоже «делала вид», но ввиду жалоб о потере камер мы четко отображаем потерю GPS.Так вот, навигационные программы заточены под движение по заранее расчитанному маршруту и под поддержку тоннелей. Поэтому при потере сигнала почти все программы продолжают рисовать на экране виртуальное движение с последней или усредненной скоростью по заданному заранее маршруту. Это сделано, чтобы в тоннеле подсказать вам следующий маневр. Стрелка маршрутов не знает, а просто считает угол на камеру и скорость, поэтому нам важно постоянно иметь свежие координаты.
Кроме того некоторые программы (Яндекс-карты, навигатор и т.п.) определяют положение по сетям GSM.

Кстати, всеми любимые Яндекс-карты показывают качество сигнала. Если указатель вашего местоположения круглый — это по вышкам, а если треугольник в виде стрелки — то по GPS.

Уведомления то пропадают, то появляются снова. Непонятно

— Внимательно прочитайте раздел «Уведомления». Ниже обозначил основные моменты.
— В режиме постоянных уведомлений при изменении направления движения список камер в направление движения может изменяться и даже пропадать. Это логично, т.к. вы могли повернуть на перпендикулярную улицу и уведомления стали неактуальны. Но возможно это и при перестроениях.
— Устанавливается минимальная скорость, после которой уведомление пропадает. Это удобно при движении в пробке. Пока едете медленно (тыр-пыр) уведомления и звуки вам не мешают, как только поехали быстрее обозначенной скорости — сразу появляются.
— Установлена опция «только при превышении» для некоторых камер — пока превышаете на установленное значение — уведомление есть.

В вашей программе неправильная скорость. У меня спидометр показывает скорость больше, чем в программе.

1. Это абсолютно логично и касается всех GPS устройств.
2. Спидометры всегда врут в сторону завышения реальной скорости.

Объясняю (в технических терминах, как инженер).
1. Любой прибор имеет погрешность, обычно она измеряется в диапазоне ± Х%, например от -3% до +3% или -5% до +5%
2. Спидометр — это прибор, причем не особо точный, поэтому 5% — вполне реальный диапазон.
3. Для спидометра СОВЕРШЕННО НЕДОПУСТИМО любое вранье в сторону занижения реальной скорости, т.е. если вы едете 70кмч, абсолютно недопустимо показывать 68. За это на производителей подадут в суд и выиграют дело!
4. Поэтому все спидометры делают в допусках 0%…-10%, т.е. при реальной скорости 70кмч, он может показать от 70 до 80кмч, но никак не 69.
5. Производители это делают так — берут величину погрешности Х (в моем примере 5%), сразу завышают на эту величину, т.е. ставят на 75, а затем все крутится относительно погрешности (например может быть и 72 и 78)
6. У иномарок это как-правило именно 0…10%, у жигулей 0…20% (у нас допуски больше)

Вторая немаловажная причина вранья спидометров — это диаметр колес.
7. Производитель машины пишет в инструкции допустимые диаметры (например 195-65-R15 и 205-60-R16), при этом все более менее будет в допуске.
8. Вы ставите нестандартные колеса (к примеру 215-55-R17) — понятно, что спидометр будет врать.

Ну и на практике моих автомобилей — восьмера и пятнашка при реальной скорости 120кмч показывали 138 и 136 (это уже сверка с точными приборами), десятка 134, иномарки 126, 124 и 125.

Я сохранил настройки, потом восстановил, а программа пишет. что не зарегистрирована.

Да, так и задумано. Смысл сохранения настроек в переносе на другой аппарат или перепрошивке. В этих случаях deviceid все-равно поменяется.

Не срабатывает автоматический старт при загрузке магнитолы

1. После установки или force stop приложение ни разу не запускалось — нужно обязательно хоть раз открыть приложение.
2. Приложение некорректно работает с карты памяти, нельзя переносить Стрелку на sdcard/
3. Различные диспетчеры задач, оптимизаторы, приложения безопасности, Startup-менеджеры и т.п. могут отслеживать регистрацию приложения для приема ACTION_BOOT_COMPLETED и запрещать/разрешать его получение при загрузке (например Autostarts). Добавьте в исключение Strelka в их настройках.
4. Некоторые производители телефонов сразу предустанавливают в заводскую прошивку менеджер автозапуска, который по умолчанию запрещает автозапуск для любых приложений кроме google-овских и их собственных. Ручками там конечно можно разрешить автозапуск для любого приложения, но не все пользователи об этом даже догадываются.

Отличия базовой и основной версий

Базовая бесплатная версия в основном предназначена для знакомства с программой. И в целях «попробовать», как работает програма на знакомых вам камерах.

Функционал пробная (LITE) основная(PRO)
Загрузка баз speedcamonline.ru через интернет ДА ДА
Создание списков и загрузка баз из текстовых файлов по ссылкам ДА
Загрузка Стрелок поверх любых баз камер ДА
Автоматизация (запуск по событиям) ДА
Автоматическая ежедневная загрузка баз ДА
Добавление камер пользователя ДА ДА
Синхронизация камер пользователя ДА
Профили ДА
Добавление произвольных точек пользователя ДА
Подсветка экрана — режимы Включена и Затемнять ДА ДА
Подсветка экрана — режим «включать только для уведомления» ДА
Выбор, настройка положения и размера окон-уведомлений ДА
Принудительный поворот и прозрачность окон-уведомлений ДА
Предупреждения встроенными звуками ДА ДА
Предупреждения голосом ДА
Уведомление 50…300м до 150м ДА
Уведомление 300…1000м ДА
Уведомление 1000…2000м ДА
Уведомление только при превышении ДА
Виджет с настройками ДА ДА
Виджет «пульт-управления» ДА ДА
Отображение ближайшей камеры на виджете ДА
Управление со стороны др. программ (например Tasker) ДА
Выключение при разряде батареи меньше 10% ДА ДА
Работа с внешним блютуф-приемником ДА ДА

Общие настройки

Описание раздела «Настройки» главного окна программы.

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

Профили

Три профиля: Трасса, Город/Мото, Мегаполис. Программа меняет настройки объектов при переключении профиля.
Например, для трассы можно настроить бОльшие дистанции, другие звуки, форму окон или значения превышений.
Профили можно переключать вручную, автоматически и по событиям.
Город можно поменять на Мотоцикл с включением опции «только камеры снимающие задний номер».
Подробно о профилях в приложении Антирадар Стрелка.

Аудиоканал

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

Автоматизация, внешнее управление

Позволяет автоматически запускать рабочий режим программы при различных действиях, автоматически загружать базу из интернет, запускать другие программы совместно с рабочим режимом и поддерживает внешнее управление (например Tasker или другие программы).
Подробно об автоматических действиях Антирадара Стрелка

Настройки экрана, оформления, окон-уведомлений, летающей кнопки.

Как поменять цвета окон, фона, надписей, иконок, изменить тему оформления
Как настроить размер и положение всплывающих окон
Что такое летящая кнопка
Что такое быстрые функции
Как сделать чтобы экран не гасился
Как быстро добавлять объекты на ходу
И многое другое о настройке окон и оформления в Антирадаре Стрелка

Настройка виджетов

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

Голоса

Выбор голоса для оповещений производится через Интернет.
При первом обращении загружается список возможных голосовых пакетов.
Напротив каждого есть кнопка «прослушать» — доступ только при наличии интернета.
При нажатии на галочку пакет либо скачивается из Интернет, либо (если был скачан ранее и файлы не изменились) предлагается его скачать заново или просто включить.

Сохранение, восстановление всех настроек и настройки «по-умолчанию»

Сохранение всех настроек делается в файл sdcard/Android/data/com.ivolk.StrelkaGPS/files/sXXX.sdat в основной памяти (где XXX — дата).
При восстановлении настроек или при сбросе «по-умолчанию» лицензия становится LITE.
Для восстановления PRO нужно заново скачать базу!!!
«По умолчанию» позволяет вернуть все настройки в исходное состояние.

>>> Я сохранил настройки, потом восстановил, а программа пишет, что версия FREE.
Да, так и задумано. Смысл сохранения настроек в переносе на другой аппарат или перепрошивке. В этих случаях deviceid все-равно поменяется.

Настройка антирадаров на смартфонах Huawei

Хорошая статья с полным перечнем моментов по настройке Huawei

1. Диспетчер телефона — Батарея — Запуск приложений — Отключить авто для
Стрелки и включить все галки для управления вручную.
Заодно проверьте разделы «Режим энергосбережения» и «Ультра»

Если не ловит GPS зайдите в ОПЦИИ — Дополнительно — GPS для Huawei
Важно! Эта опция — только для Android 8.1. и Андроид 9 !
Важно! Если программа работает в большом окне (не в фоновом режиме) – не трогайте галку GPS для Huawei — она тут не причем. Разбирайтесь с настройками энергосбережения Андроида!

2. Настройки — Приложения — Стрелка — Диспетчер уведомлений.
Обязательно разрешить все типы уведомлений! Иначе в фоне будет «засыпать». Это к вопросам «засыпает через 2-3минуты». (второй скриншот)
Также, если отключить опции «экран блокировки» или «строка состояния» — есть вероятность, что система «заморозит» работу в фоне через некоторое время или работу при выключенном экране.

3. Настройки — Приложения — Стрелка — Сведения энергосбережения.
Отключите «Сообщать об энергоемкости». (третий скриншот выше)
И проверьте есть ли «Фоновая активность не запрещена». Если нету — включите.
Этот раздел по-сути дублирует раздел 1.

4.»Диспетчер телефона» > Буферная зона > включить для Стрелки:

Важно! Если приложение уже было установлено на смартфоне, его нужно удалить и поставить заново. Это необходимо для того, чтобы хуавей сбросил статистику AI по данному приложению. Долго нажмите на значек «Стрелка», затем «Удалить». А затем поставьте его заново.

Еще из писем пользователей:
Полезная штука для телефона honor 9 — выключить галочку «умная настройка».
Как было дело.
Приложение обновилось через плей маркет до версии 5.86 и, естественно, в скором времени перестала опрашивать спутники.
Я переустановил стрелку и кроме указанных рекомендаций на сайте снял эту галочку.
Теперь работает без сбоев как часы. Может быть так совпало, а может и помогло, не понятно, но большое спасибо за работу!

95% пользователей эти настройки точно помогли. Во-всяком случае те, кто в почту ответил.
Еще у некоторых были «экзотичные» ситуации, например одному пользователю помогло переключение:
»Безопасность и конфиденциальность» — «Данные о местоположении» — «Дополнительные настройки» — «Поиск сетей Wi-Fi

Huawei Honor на Андроид 7

Нужно защитить приложение замочком от выгрузки из недавних приложений (скриншот1). Затем отключить оптимизацию:

Отключение оптимизации:
Настройки — приложения — шестерёнка настройки — специальный доступ — игнорировать оптимизацию батареи — разрешено — все приложения — Стрелка — разрешено

Huawei на Андроид 6 и 7

:
«Диспетчер телефона» > Управление буферной зоной > включить для Стрелки:

Huawei на Андроид 4 и 5

Приложение «диспетчер телефона» > Кнопка настройки (или Инструменты) > Управление буферной зоной > включить для Стрелки:

На английских прошивках выглядит примерно вот так:

Также проверьте: Настройки приложений — Стрелка — Наложение поверх других окон — нужно включить.

Еще вариант: Меню — Батарея — Автоотключение энергоёмких приложений. Отключить

Уведомления о камерах и радарах

В этом разделе будут ответы на вопросы:
- Как настроить звуки, голоса и бипер (бип-бип-бип)
- Как приложение Стрелка предупреждает о радарах и камерах видеофиксации ГИБДД
- Как сделать, чтобы уведомления были только при превышении, когда идешь на штраф
- Как быстро менять все параметры при выезде на трассу или въезде в город.
- Как попробовать сделанные настройки (режим Демо)

Видеоролик по настройке уведомлений — 2017

Программа предупреждает вас об объектах (камеры, радары, посты, и т.п.) с помощью уведомлений посредством:
1. Окна на экране поверх всех других программ (на первом рисунке — виды окон)
2. Звука-рингтона из встроенных в программу или собственного.
3. Голосовой фразы (третий рисунок).
4. Бипера (с настройкой частоты и длительности).
5. Вибрации.

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

Настраиваются все возможные параметры для трех типов профилей — Трасса-Город-Мегаполис.
Идея такая:
ПРОФИЛЬ->ОБЪЕКТ->1-3 УВЕДОМЛЕНИЯ->Блок настроек
Например:
ГОРОД->КАМЕРА->ДАЛЬНЕЕ->Дистанция, окно, звук, голос, бипер и т.п.
ТРАССА->КАМЕРА->ДАЛЬНЕЕ->Дистанция, окно, звук, голос, бипер и т.п.
ГОРОД->КАМЕРА->БЛИЖНЕЕ->Дистанция, окно, звук, голос, бипер и т.п.
На картинке показано более подробно. Как видите, для одного и того-же типа радара для Трассы, Города и Мегаполиса можно указать как разные дистанции, так и разные звуки, голосовую фразу, форму окна и т.п. Таким образом достигается высочайшая гибкость настройки приложения Антирадар Стрелка. Для упрощения настроек предусмотрены: Мастер и готовые Наборы в облаке.

Настройка уведомлений

Включение и выключение уведомления «в целом» производится при нажатии в правой части заголовка (см.рис.1). Крайне не рекомендуется выключать более ближнее при включенном более дальнем. При выезде с боковой дороги «под камеру» вы можете потерять уведомление целиком (см.дальше).

Длительность отображения окна выбирается нажатием на кнопку «Длит» (рис.2. и 3.)
В случае длительности «до проеда камеры» (рис.3.) появляется окно, проговаривается предупреждение, а затем окно остается на экране до проезда камеры, при этом программа напоминает об объекте бипером.
Важно: Если установлено фиксированное значение (3-5…11секунд), по истечении этого времени окно убирается, фраза обрывается — эта опция оставлена «исторически», к применению не рекомендуется!

Для каждого уведомления также можно установить:
- Дистанцию.
- Длительность.
- Тип окна, его размер и местоположение ).
- Звук — короткий звуковой сигнал, можно выбрать из 40 встроенных в программу звуков или использовать свой файл (формат wav-44100-16bit-mono). Также можно использовать свои звуки (второй рисунок). Для этого звуковой файл нужно сконвертировать в этот-же формат (wav-44100-16bit-mono), затем положить в папку Android/data/com.ivolk.StrelkaGPS/files/strelka/uservoices в основной памяти. Для конвертации можно воспользоваться программой winamp или бесплатным сервисом в интернете.
- Голосовую фразу
Программа строит голосовую фразу из 5 частей:
1. Слово «внимание»
2. Название объекта (например слово «Стрелка»)
3. Расстояние (например «тысяча двести метров»)
4. Слово «Ограничение»
5. Величину ограничения скорости на этом участке (например «сто десять»)
- Бипер — это такой звук бип-бип-бип, чтобы не забыть о камере при обгоне или на светофоре. Для бипера настраивается частота в Герцах (для далеких от физики и музыки: клавиша в середине «пианины» имеет частоту 440Гц), длительность звука и длительность паузы. Здесь-же есть кнопка «Тест», чтобы попробовать настройку.
- Вибро — самая простая настройка — просто включает или выключает.

Настройку сразу нескольких объектов «оптом» можно сделать с помощью Мастера

Дополнительные настройки

«При превышении» — При установке этой настройки вы не будете получать уведомления, если ваша скорость ниже, чем ограничение на этом участке, которое меряет камера + установленное превышение.
Например, на рисунке, до превышения (на 1км/ч) — ничего нет, при превышении до 10км/ч — окно без звука. Далее по-полной.

Режим «при превышении» работает при ==Превышении скорости выше той, что меряет камера впереди==!!
То есть — например, ставите окно +10км/ч, а звук +20км/ч.

Стрелка на 100км/ч (МКАД) — окно появляется при 111км/ч, бипер пикает при 121км/ч,
Т.е. как-только пошли под штраф — запикал бипер.
Снижаете обратно — бипер выключился.
Опять разогнались — запикал.
Стрелка на 60км/ч (в городе) — окно появляется при 71км/ч, бипер пикает при 81км/ч,
Стрелка на 80км/ч (ТТК) — окно появляется при 91км/ч, бипер пикает при 101км/ч,
и так далее

Причем все это можно настроить по-разному для разных типов объектов и для разных профилей (город-трасса)

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

«Статистика превышений» — используется для стационарных объектов, измеряющих скорость. В случаях превышения скорости на 1км/ч будет записываться статистика. Посмотреть ее можно в разделе «ИНФО»-«Статистика превышений».

«Только по будням» — используется для камер общественного транспорта. При установке во «Вкл» в выходные дни уведомлений по ним не будет.

Общие настройки

Оптимальные дистанции — если выбрана эта галочка, то первое уведомление будет происходить на дистанции, указанной в качестве оптимальной модераторами rd-forum. Дальнейшие уведомления — по заданным вами параметрам. В случае, если у объекта не указана оптимальная дистанция — будут использованы заданные параметры.

Минимальная скорость. Ниже этой скорости уведомлений по данному объекту происходить не будет. Данная настройка полезна в пробках, т.к. не отвлекает водителя ненужными сигналами. Минимальное значение 5км/ч, ниже — технически невозможно.

Только камеры «в спину» — для мотоциклистов. Будет предупреждать только о камерах видеофиксации ГИБДД, которые снимают задний номер.

Принцип работы программы при движении на камеру таков

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

Далее эта последовательность повтряется для каждого из уведомлений (если их несколько для данного типа объектов).
При изменении расстояний картинка поменяется на такую (первое установлено на 1600м, второе на 750).

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

Так делать не рекомендуется, т.к. может явиться причиной «якобы пропуска камер». Например, включено первое уведомление, при выключенном втором — как на рисунке. Тогда уведомление закончится за 1000м и снова начнется за 300м. Если мешает звук — отключите его, поставьте маленькое окно и т.п., но нежелательно выключать уведомление целиком.

Важные особенности

А) Если по направлению движения есть несколько объектов, и по некоторым установлено определенное время уведомления, а по некоторым «до проезда…», то
1. Будет выдано разовое уведомление по объекту в соответствие с дистанцией
2. Появится постоянное уведомление по объекту, у которого установлено «до проезда…»
Предположим, впереди пост, потом камера. Для камеры вы установили «до проезда камеры», для поста «3с».
В этом случае последовательность будет такая: пост1,камера1,камера-бипер, пост2, камера2, камера-бипер, пост3,камера3, камера-бипер

При этом во время работы бипера будет висеть окно от камеры и бипер работать с настройками камеры. Но если у камеры будет установлено подробное окно, то видно будет и расстояние до поста. В момент разового уведомления окно будет заменяться на то, которое установлено для поста.
Еще раз на примере (к вопросу о «проглатываниях камер»):
Предположим впереди две камеры и разница между ними как-раз такая-же как разница между первым и вторым предупреждением.
Тогда:
— Идет уведомление о второй камере (например 900м)
— Идет уведомление о первой камере (например 1800м)
— Переключаемся на постоянное о второй (900…300) с бипером
Это логично, опаснее то ближайшее. Но и о первом объекте предупредить надо, чтобы потом не было желания разгоняться.
В) Если окно для разового уведомления не перекрывает окно для постоянного, то окно постоянного может не закрываться (про настройку вида окна и его положения в отдельном разделе «Настройка окон»).
С) Ряд объектов имеют «приоритеты». Т.е. если в одной точке находится пост и Стрелка, то первым всегда будет выдаваться уведомление о Стрелке. Приоритеты идут в таком порядке: Стрелки, камеры, камеры общественного транспорта, все остальные объекты.
D) При отсутствии движения все уведомления отключаются. Это логично — вы же не хотите в пробке или на светофоре слушать бесконечное пиканье бипера. Минимальную скорость отключения предупреждений можно установить кликнув на слово «Минимальная скорость». По умолчанию — 20кмч (для камер общественного транспорта 5км/ч).
Не рекомендуется ставить это значение меньше 15км/ч, т.к. точность измерения направления движения ухудшается и возможны ложные срабатывания на низких скоростях. На аппаратах с поддержкой двух систем (GPS-ГЛОНАСС) можно ставить вплоть до 5кмч.
E) В режиме постоянных уведомлений при изменении направления движения список камер может изменяться и даже пропадать. Это логично, т.к. вы могли повернуть на перпендикулярную улицу и уведомления стали неактуальны. Но возможно это и при перестроениях.

Демо — Режим тестирования

Кнопка «Демо» находится внизу под каждым набором уведомлений.
В режиме тестирования включается фиктивная камера на максимальном расстоянии, установленном вами в настройках. Далее включается имитация движения и все это прогоняется через реальный механизм обнаружения (т.е. стартует сервис, который вы можете видеть в строке уведомлений)
Первое обнаружение камеры происходит через 2,5…3 секунды после старта теста.

Остановить тест можно нажав на эту-же кнопку (надпись поменяется на «Стоп»). также тест остановится, как только вы виртуально «доедете» до объекта.
Во время теста будут выдаваться уведомления в полном соответствии с настройками — т.е. окно, рингтон, голос, бипер, вибро, также будут работать настройки «при превышении» и будний день.Учебное пособие по

Android Custom View | raywenderlich.com

Платформа Android имеет несколько классов View, которые покрывают многие потребности типичного приложения. Но иногда эти представления не соответствуют вашим потребностям, и вам необходимо создать собственное представление по следующим причинам:

  • Инновационный дизайн пользовательского интерфейса или анимация
  • Другое взаимодействие с пользователем
  • Отображение различных типов данных
  • Некоторая оптимизация производительности
  • Возможность повторного использования

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

Предварительные требования: Это руководство по Android посвящено настраиваемым представлениям, поэтому вам потребуются базовые знания программирования для Android и знакомство с Kotlin, Android Studio и макетами XML.
Если вы новичок в Android, возможно, вам стоит сначала ознакомиться с «Начало разработки Android, часть первая».

Чтобы следовать этому руководству, вам необходимо использовать Android Studio 3.0.1 или новее и Kotlin 1.2.21 или новее.

Начало работы

Для начала загрузите материалы для этого руководства (вы можете найти ссылку вверху или внизу страницы), а затем запустите Android Studio и импортируйте стартовый проект.Это (в основном) пустой проект с некоторыми ресурсами (цвета, размеры и средство запуска значков).

Создайте и запустите приложение, и вы увидите пустой экран вроде этого:

Работа с основными виджетами

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

У вас есть два способа создать новый экземпляр представления Android и установить значения для его атрибутов:

  1. Из ваших файлов XML (файлы макета)
  2. с вашего котлинского кода

Работа с видами в Kotlin

Вы можете добавить TextView в свой макет из кода Kotlin.Откройте MainActivity и замените строку setContentView (R.layout.activity_main) в onCreate () следующим кодом:

// 1
val textView = TextView (это)
// 2
textView.text = "Привет, настраиваемые представления"
// 3
setContentView (TextView)
 

Здесь вы:

  1. Создайте TextView с помощью конструктора, которому нужен контекст действия.
  2. Установите «Hello Custom Views» как текст TextView .
  3. Установите TextView в качестве представления содержимого действия.

Сборка и запуск. Вы увидите на экране текст «Hello Custom Views», например:

Работа с представлениями в XML

Теперь откройте res / layout / activity_main.xml . Чтобы использовать один из базовых виджетов Android, например TextView , просто перетащите его из окна палитры слева в редактор дизайна и поместите его в верхний центр макета или переключитесь в текстовый редактор XML и добавьте следующие строки в код XML внутри RelativeLayout :


 

Вы можете изменить множество основных атрибутов из класса View в XML, таких как id, layout_width, layout_height, alpha, visibility, elevation, padding, tag и т. Д.

Чтобы изменить атрибут, например текст TextView, просто добавьте имя атрибута ( android: text ) и присвойте ему значение ( «Hello Custom Views» ), как в последней строке предыдущий фрагмент.

Сбросьте onCreate () в MainActivity , чтобы использовать setContentView (R.layout.activity_main) , и удалите код, который вы добавили ранее. Скомпилируйте и запустите проект. Вы увидите на экране текст «Hello Custom Views» , например:

Android Просмотры

Класс Android View — это базовый строительный блок пользовательского интерфейса Android.View занимает прямоугольную область на экране для рисования себя и своих дочерних элементов (в случае ViewGroup ). Кроме того, представление отвечает за обработку пользовательских событий.

ViewGroup является подклассом класса View . ViewGroup — это базовый класс для макетов Android , которые являются контейнерами для набора представлений (или других групп представлений) и определяют свои собственные свойства макета, а также место, где каждое вложенное представление должно рисовать себя.

Пользовательский вид и пользовательская группа просмотра

Что такое пользовательский просмотр?

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

Предположим, что в базовом наборе виджетов в Android SDK нет виджета Button, и вы хотите его создать. Вы бы расширили класс TextView , чтобы получить все возможности, связанные с текстом, такие как установка текста, цвета текста, размера текста, стиля текста и так далее. Затем вы начнете работу по настройке, чтобы придать вашему новому виджету вид кнопки. вот что происходит в Android SDK: класс Button расширяет класс TextView .

Или теоретически можно расширить класс View, чтобы начать с нуля.

Что такое настраиваемая группа просмотра?

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

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

Вы можете сгруппировать эти представления ( ImageView, SeekBar, TextView ) в один файл макета, а затем создать новый класс, расширяющий макет (например, LinearLayout или RelativeLayout ) и написать в нем свою бизнес-логику.

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

Как Android рисует просмотры

Когда действие Android выходит на передний план, Android запрашивает у него корневое представление. Корневой вид — это верхний родитель иерархии макета. Затем Android начинает рисовать всю иерархию представлений.

Android рисует иерархию, начиная с верхнего родителя, затем его дочерних элементов, и если один из дочерних элементов также является ViewGroup, Android будет рисовать своих дочерних элементов перед рисованием второго дочернего элемента. Итак, это переход в глубину .

Android рисует дочерние элементы ViewGroup в соответствии с индексом дочернего элемента (его положением в XML-файле), поэтому первым будет отрисовано представление, которое вы добавили первым.

Android строит иерархию макета в три этапа:

  1. Этап измерения: каждый вид должен измерять себя.
  2. Этап макета: каждая ViewGroup находит правильное положение для своих дочерних элементов на экране, используя размер дочернего элемента, а также следуя правилам макета.
  3. Этап рисования: после измерения и позиционирования всех видов каждый вид сам себя рисует. :]

Создание пользовательского вида

Наконец-то пришло время самому создавать собственный вид!

Начните с создания нового класса Kotlin и в основном пакете приложения и назовите его EmotionalFaceView . Сделайте его наследником класса View :

 класс EmotionalFaceView: просмотр 

Теперь, если вы наведете курсор на слово View , вы получите сообщение:
«У этого типа есть конструктор, поэтому он должен быть инициализирован здесь»

Конструкторы классов представления Android

View имеет четыре конструктора, и вам нужно будет переопределить хотя бы один из них, чтобы начать настройку.Ознакомьтесь со всеми, чтобы выбрать подходящий для учебника:

  1. constructor (context: Context)
    Чтобы создать новый экземпляр View из кода Kotlin, ему нужен контекст Activity.
  2. конструктор (контекст: Context, attrs: AttributeSet)
    Для создания нового экземпляра представления из XML.
  3. конструктор (контекст: Context, attrs: AttributeSet, defStyleAttr: Int)
    Для создания нового экземпляра представления из XML со стилем из атрибута темы.
  4. конструктор (контекст: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int)
    Для создания нового экземпляра представления из XML со стилем из атрибута темы и / или ресурса стиля.

Выберите второй конструктор, чтобы создать новый экземпляр из XML, вы можете переопределить конструктор в теле класса как:

Конструктор

 (контекст: контекст, атрибуты: набор атрибутов): супер (контекст, атрибуты) 

Или сделайте его основным конструктором, используя:

 класс EmotionalFaceView (контекст: контекст, атрибуты: набор атрибутов): представление (контекст, атрибуты) 

Теперь вы можете добавить свое собственное представление в центре макета и под TextView, добавив следующие строки в activity_main.xml


 

Поздравляю! Вы создали настраиваемый вид и добавили его в макет! Но у него по-прежнему нет вашей специальной настройки.

Создайте и запустите проект, и, как вы ожидаете, в пользовательском интерфейсе изменений не произойдет, но не беспокойтесь: вы начнете самое интересное прямо сейчас:]

Рисунок на холсте

Подготовьте инструменты рисования в EmotionalFaceView , объявив свойство Paint для раскрашивания и стилизации, а также некоторые цвета:

// Закрашиваем объект для окраски и стилизации
private val paint = Paint (Paint.ANTI_ALIAS_FLAG)
// Некоторые цвета для фона лица, глаз и рта.private var faceColor = Color.YELLOW
приватный var eyesColor = Color.BLACK
приватный var mouthColor = Color.BLACK
private var borderColor = Color.BLACK
// Ширина границы лица в пикселях
частный var borderWidth = 4.0f
// Просмотр размера в пикселях
частный размер var = 320
 

Теперь начните рисовать, переопределив метод onDraw () из родительского класса. Android вызывает для вас onDraw () и передает холст для рисования:

переопределить удовольствие onDraw (холст: холст) {
  // вызываем супер-метод, чтобы сохранить любой рисунок с родительской стороны.super.onDraw (холст)
}
 

Создайте три новых метода для рисования счастливого лица. Все они имеют объект Canvas в качестве параметра. Позвоните им с номера onDraw () :

переопределить удовольствие onDraw (холст: холст) {
  // вызываем супер-метод, чтобы сохранить любой рисунок с родительской стороны.
  super.onDraw (холст)

  drawFaceBackground (холст)
  drawEyes (холст)
  drawMouth (холст)
}

приватное развлечение drawFaceBackground (canvas: Canvas) {
}

приватное развлечение drawEyes (canvas: Canvas) {
}

приватное развлечение drawMouth (canvas: Canvas) {
}
 

Нарисуйте фон лица
Добавьте следующий код в drawFaceBackground () :

 // 1
 покрасить.color = faceColor
 paint.style = Paint.Style.FILL

 // 2
 val радиус = размер / 2f

 // 3
 canvas.drawCircle (размер / 2f, размер / 2f, радиус, краска)

 // 4
 paint.color = borderColor
 paint.style = Paint.Style.STROKE
 paint.strokeWidth = borderWidth

 // 5
 canvas.drawCircle (размер / 2f, размер / 2f, радиус - borderWidth / 2f, краска)
 

Вот вам:

  1. Установите цвет краски для faceColor и сделайте так, чтобы она заполняла область рисования.
  2. Рассчитайте радиус круга, который вы хотите нарисовать в качестве фона лица.
  3. Нарисуйте фоновый круг с центром (x, y) , где x и y равны половине размера, и с рассчитанным радиусом .
  4. Измените цвет paint на borderColor и заставьте его просто рисовать границу вокруг области рисования, установив стиль на STROKE
  5. Нарисуйте границу с тем же центром, но с радиусом короче, чем предыдущий радиус на borderWidth .

Скомпилируйте и запустите приложение, и вы увидите такой экран:

Нарисуйте глаза
Добавьте следующий код в drawEyes () :

// 1
paint.color = eyesColor
paint.style = Paint.Style.FILL

// 2
 val leftEyeRect = RectF (размер * 0,32f, размер * 0,23f, размер * 0,43f, размер * 0,50f)

canvas.drawOval (leftEyeRect, краска)

// 3
val rightEyeRect = RectF (размер * 0,57f, размер * 0.23f, размер * 0.68f, размер * 0.50f)

canvas.drawOval (rightEyeRect, краска)
 

Вот вам:

  1. Установите цвет paint на eyesColor и заполните область рисования.
  2. Создайте объект RectF с слева, сверху, справа и снизу , используя следующие проценты от размера: (32%, 23%, 43%, 50%) . Затем вы рисуете левый глаз, нарисовав овал с помощью созданного RectF. Дополнительную информацию о RectF можно найти в документации.
  3. Выполните то же самое, что и на последнем шаге, но со следующими процентными значениями размера: (57%, 23%, 68%, 50%)

Скомпилируйте и запустите приложение, и вы увидите такой экран:

Нарисуйте рот

Чтобы нарисовать изогнутые контуры на холсте, вам необходимо создать объект контура. Добавьте в класс EmotionalFaceView следующее свойство:

частный val mouthPath = Путь ()
 

После создания объекта Path установите для него инструкции по изгибу, добавив следующий код в drawMouth () :

// 1
mouthPath.moveTo (размер * 0,22f, размер * 0,7f)
// 2
mouthPath.quadTo (размер * 0.50f, размер * 0.80f, размер * 0.78f, размер * 0.70f)
// 3
mouthPath.quadTo (размер * 0.50f, размер * 0.90f, размер * 0.22f, размер * 0.70f)
// 4
paint.color = цвет рта
paint.style = Paint.Style.FILL
// 5
холст.drawPath (ротПуть, краска)
 

Вот вам:

  1. Установите начальную точку пути на (x0, y0) с помощью метода moveTo () , где:
  • x0 равен 22% от размера.
  • y0 равен 70% размера.
  • Нарисуйте изогнутый путь от начальной точки через (x1, y1) , который заканчивается на (x2, y2) , где:
    • x1 равен 50% от размера.
    • y1 равен 80% размера.
    • x2 равен 78% от размера.
    • y2 равен 70% размера.
  • Нарисуйте изогнутый путь, начиная с последней конечной точки (x2, y2) и до (x3, y3) и заканчивая (x0, y0) , где:
    • x3 равен 50% от размера.
    • y3 равен 90% размера.
    • x0 равен 22% от размера.
    • y0 равен 70% размера.
  • Установите цвет краски для MouthColor и сделайте так, чтобы она заполняла область рисования.
  • Нарисуйте путь к холсту.
  • Создайте и запустите приложение, и вы увидите такой экран:

    Адаптивный просмотр

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

    Android измеряет ширину и высоту просмотра. Вы можете получить эти значения, используя измеренные ширины и высоту.

    Переопределить метод onMeasure () , чтобы обеспечить точное и эффективное измерение содержимого представления:

    переопределить удовольствие onMeasure (widthMeasureSpec: Int, heightMeasureSpec: Int) {super.onMeasure (widthMeasureSpec, heightMeasureSpec)
    
    }
     

    Добавьте следующие строки кода в onMeasure () :

    // 1
    size = Math.мин (измеренная ширина, измеренная высота)
    // 2
    setMeasuredDimension (размер, размер)
     

    Вот вам:

    1. Рассчитайте меньший размер вашего представления
    2. Используйте setMeasuredDimension (int, int) для хранения измеренной ширины и измеренной высоты представления, в этом случае делая ширину и высоту вашего представления эквивалентными.

    Скомпилируйте и запустите приложение, и вы увидите такой экран:

    Создание настраиваемых атрибутов XML

    Чтобы создать новый атрибут XML, перейдите к res / values ​​ и создайте новый файл ресурсов значений с именем attrs.xml . Добавьте в файл следующие строки:

    
      
      
      
      
      
      
      
        <перечисление name = "happy" value = "0" />
        
      
    
     

    Вот вам:

    1. Откройте тег с возможностью объявления стиля и установите для атрибута name имя вашего пользовательского класса представления.
    2. Добавьте новые атрибуты с разными именами и установите для них формат в подходящий формат.

    Перейдите к res / layout / activity_main.xml и добавьте следующие новые представления в RelativeLayout:

    
    
    <Ком.raywenderlich.emotionalface.EmotionalFaceView
       андроид: идентификатор = "@ + идентификатор / sadButton"
       андроид: layout_width = "@ DIMEN / face_button_dimen"
       андроид: layout_height = "@ DIMEN / face_button_dimen"
       андроид: layout_alignParentEnd = "истина"
       андроид: layout_alignParentRight = "истина"
       Приложение: BorderColor = "@ цвет / черный"
       Приложение: eyesColor = "@ цвет / черный"
       Приложение: faceColor = "@ цвет / light_grey"
       Приложение: mouthColor = "@ цвет / черный"
       app: state = "sad" />
     

    Вы добавили в макет два объекта EmotionalFaceView и используете новые настраиваемые атрибуты XML.Это доказывает концепцию повторного использования настраиваемого представления.

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

    Создайте и запустите приложение, и вы увидите такой экран:

    Как видите, новые атрибуты XML еще не влияют на EmotionalFaceView . Чтобы получить значения атрибутов XML и использовать их в классе EmotionalFaceView , обновите все строки кода, установив свойства выше onDraw () на:

    // 1
    companion object {
      private const val DEFAULT_FACE_COLOR = Цвет.ЖЕЛТЫЙ
      private const val DEFAULT_EYES_COLOR = Color.BLACK
      private const val DEFAULT_MOUTH_COLOR = Color.BLACK
      private const val DEFAULT_BORDER_COLOR = Color.BLACK
      частный const val DEFAULT_BORDER_WIDTH = 4.0f
    
      const val HAPPY = 0L
      const val SAD = 1L
    }
    
    // 2
    частный var faceColor = DEFAULT_FACE_COLOR
    закрытый var eyesColor = DEFAULT_EYES_COLOR
    частный var mouthColor = DEFAULT_MOUTH_COLOR
    частный var borderColor = DEFAULT_BORDER_COLOR
    частный var borderWidth = DEFAULT_BORDER_WIDTH
    
    приватная краска val = Paint ()
    частный val mouthPath = Путь ()
    частный размер var = 0
    
    // 3
    var счастьяState = HAPPY
      set (состояние) {
        поле = состояние
        // 4
        Invalidate ()
      }
    
    // 5
    в этом {
      покрасить.isAntiAlias ​​= true
      setupAttributes (ATTRS)
    }
    
    приватные развлечения setupAttributes (attrs: AttributeSet?) {
      // 6
      // Получаем типизированный массив атрибутов
      val typedArray = context.theme.obtainStyledAttributes (attrs, R.styleable.EmotionalFaceView,
          0, 0)
    
      // 7
      // Извлекаем пользовательские атрибуты в переменные-члены
      счастьеState = typedArray.getInt (R.styleable.EmotionalFaceView_state, HAPPY.toInt ()). toLong ()
      faceColor = typedArray.getColor (R.styleable.EmotionalFaceView_faceColor, DEFAULT_FACE_COLOR)
      eyesColor = typedArray.getColor (R.styleable.EmotionalFaceView_eyesColor, DEFAULT_EYES_COLOR)
      mouthColor = typedArray.getColor (R.styleable.EmotionalFaceView_mouthColor, DEFAULT_MOUTH_COLOR)
      borderColor = typedArray.getColor (R.styleable.EmotionalFaceView_borderColor,
          DEFAULT_BORDER_COLOR)
      borderWidth = typedArray.getDimension (R.styleable.EmotionalFaceView_borderWidth,
          DEFAULT_BORDER_WIDTH)
    
      // 8
      // Объекты TypedArray являются общими и должны быть переработаны.typedArray.recycle ()
    }
     

    Вот вам:

    1. Добавьте две константы, одну для состояния HAPPY и одну для состояния SAD .
    2. Установить значения по умолчанию для свойств атрибута XML, если пользователь настраиваемого представления не установил одно из них
    3. Добавьте новое свойство с именем HappyState для состояния счастья лица.
    4. Вызовите метод invalidate () в методе set happyState .Метод invalidate () заставляет Android перерисовывать представление, вызывая onDraw () .
    5. Вызов нового частного метода setupAttributes () из блока init .
    6. Получить типизированный массив атрибутов XML
    7. Извлечь пользовательские атрибуты в переменные-члены
    8. Переработайте массив typedArray , чтобы данные, связанные с ним, были готовы для сборки мусора.

    Скомпилируйте и запустите приложение, и вы увидите такой экран:

    Как вы видите на предыдущем снимке экрана, HappyState все еще не действует, и обе кнопки EmotionalFaceView счастливы.

    В начале метода drawMouth () добавьте следующую строку

    mouthPath.reset ()
     

    Это приведет к сбросу пути и удалению любого старого пути перед рисованием нового пути, чтобы не рисовать рот более одного раза, пока Android снова и снова вызывает метод onDraw () .

    Вы хотите сделать лицо счастливым или грустным, в зависимости от состояния, в drawMouth () . Замените рисунок mouthPath () следующими строками кода:

    if (HappyState == HAPPY) {
     // 1
     mouthPath.quadTo (размер * 0,5f, размер * 0,80f, размер * 0,78f, размер * 0,7f)
     mouthPath.quadTo (размер * 0,5f, размер * 0,90f, размер * 0,22f, размер * 0,7f)
    } else {
     // 2
     mouthPath.quadTo (размер * 0,5f, размер * 0,50f, размер * 0,78f, размер * 0,7f)
     mouthPath.quadTo (размер * 0,5f, размер * 0,60f, размер * 0,22f, размер * 0,7f)
    }
     

    Вот вам:

    1. Нарисуйте счастливый контур рта с помощью метода quadTo () , как вы узнали ранее.
    2. Нарисуйте печальный контур рта.

    Весь метод drawMouth () будет выглядеть так:

    приватное развлечение drawMouth (canvas: Canvas) {
    
      // Очистить
      mouthPath.сброс()
    
      mouthPath.moveTo (размер * 0,22f, размер * 0,7f)
    
      if (HappyState == HAPPY) {
        // Счастливый путь рта
        mouthPath.quadTo (размер * 0,5f, размер * 0,80f, размер * 0,78f, размер * 0,7f)
        mouthPath.quadTo (размер * 0,5f, размер * 0,90f, размер * 0,22f, размер * 0,7f)
      } else {
        // Грустный путь рта
        mouthPath.quadTo (размер * 0,5f, размер * 0,50f, размер * 0,78f, размер * 0,7f)
        mouthPath.quadTo (размер * 0,5f, размер * 0,60f, размер * 0,22f, размер * 0,7f)
      }
    
      покрасить.color = mouthColor
      paint.style = Paint.Style.FILL
    
      // Рисуем контур рта
      холст.drawPath (ротПуть, краска)
    }
     

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

    Взаимодействие с пользователем

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

    импортировать kotlinx.android.synthetic.main.activity_main. *
     

    Расширения

    Kotlin для Android предоставляют удобный способ привязки представлений, импортируя все виджеты в макете за один раз. Это позволяет избежать использования findViewById () , которая является источником потенциальных ошибок, которую трудно читать и поддерживать.

    Теперь добавьте следующие прослушиватели кликов в onCreate () в MainActivity :

    // 1
    happyButton.setOnClickListener ({
       эмоциональныйFaceView.happinessState = EmotionalFaceView.HAPPY
    })
    // 2
    sadButton.setOnClickListener ({
       эмоциональныйFaceView.happinessState = EmotionalFaceView.SAD
    })
     

    Вот вам:

    1. Установите для параметра elasticFaceView HappinessState значение СЧАСТЛИВ, когда пользователь нажимает кнопку счастья.
    2. Установите для EmotionalFaceView состояние счастья значение SAD, когда пользователь нажимает кнопку «грустно».

    Создайте и запустите приложение и нажмите обе кнопки, чтобы изменить состояние счастья:

    Сохранение состояния просмотра

    Вы можете сохранить свое состояние просмотра в случае каких-либо изменений в конфигурации устройства, например, ориентации, переопределив методы onSaveInstanceState () и onRestoreInstanceState () .

    Добавьте следующие переопределения метода в EmotionalFaceView :

    переопределить удовольствие onSaveInstanceState (): Parcelable {
     // 1
     val bundle = Пакет ()
     // 2
     расслоение.putLong ("Состояние счастья", Состояние счастья)
     // 3
     bundle.putParcelable ("superState", super.onSaveInstanceState ())
     возвратный пакет
    }
    
    переопределить удовольствие onRestoreInstanceState (state: Parcelable) {
     // 4
     var viewState = состояние
     if (viewState - это Bundle) {
       // 5
       счастьяState = viewState.getLong ("счастьяState", СЧАСТЛИВ)
       // 6
       viewState = viewState.getParcelable ("superState")
     }
     super.onRestoreInstanceState (ViewState)
    }
     

    Вот вам:

    1. Создайте новый объект Bundle для размещения данных.
    2. Поместите значение состояния счастья в пакет.
    3. Поместите состояние, исходящее от суперкласса, чтобы не потерять данные, сохраненные суперклассом, затем верните пакет .
    4. Проверьте тип объекта Parcelable , чтобы преобразовать его в объект Bundle .
    5. Получите значение HappyState .
    6. Получите суперсостояние, затем передайте его методу super.

    Создайте и запустите приложение, измените состояние счастья на грустное и измените ориентацию устройства.Центральная грань должна оставаться грустной после поворота устройства:

    Куда идти дальше?

    Да! Вы создали свой собственный вид:]

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

    Во время этого урока вы:

    • Нарисовал на холсте круг, овал и путь. Вы можете узнать больше о пользовательском рисунке здесь.
    • Сделал настраиваемый вид отзывчивым.
    • Созданы новые атрибуты XML для настраиваемого представления.
    • Состояние просмотра сохранено.
    • Повторно использовал настраиваемый вид для разных вариантов использования.

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

    Добавление анимации в пользовательский вид может значительно улучшить UX. Ознакомьтесь с Руководством по анимации Android с Kotlin.

    Вы также можете узнать больше о рисованной анимации и Canvas и Drawables.

    Не стесняйтесь делиться своими отзывами или задавать любые вопросы в комментариях ниже или на форумах.Спасибо!

    raywenderlich.com Еженедельно

    Информационный бюллетень raywenderlich.com — это самый простой способ оставаться в курсе всего, что вам нужно знать как мобильному разработчику.

    Получите еженедельный дайджест наших руководств и курсов, а в качестве бонуса получите бесплатный углубленный курс по электронной почте!

    ,

    20 советов, которые помогут освоить Gboard для Android «Android :: Gadget Hacks»

    Набор текста на мобильном устройстве прошел долгий путь со времен раскладушек. Сегодня есть отличные приложения для клавиатуры, такие как Gboard, которые объединяют функции поиска Google и упрощают набор текста. Но весь опыт все равно можно улучшить, если вы потратите время на то, чтобы выучить несколько полезных советов.

    Gboard включает в себя все, что мы ожидаем от современной клавиатуры, включая поддержку эмодзи и голосовой набор.Но истинное преимущество этой клавиатуры перед конкурентами — это наличие удобных функций быстрого доступа, таких как поиск GIF, Google Translate и множество крутых жестов. Итак, ниже мы рассмотрим некоторые из менее известных функций Gboard.

    1: Быстрое скольжение для набора текста

    Gboard — это не просто клавиатура для поиска и поиска — вы можете перемещаться от одной буквы к другой, даже не поднимая пальца. Чтобы привыкнуть к «скользящей печати», нужно время, но это то, чему должен научиться каждый пользователь Gboard.Допустим, вы набираете слово «Гаджет» — начните с буквы G, затем переходите к A, затем к D, G, E и, наконец, T. Когда вы закончите смахивать слово, просто поднимите отведите палец от экрана и начните смахивать следующее слово.

    20 Tips to Help You Master Gboard for Android

    2: Использование клавиши пробела в качестве трекпада

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

    20 Tips to Help You Master Gboard for Android

    3. Использование одной рукой

    Для больших телефонов Gboard имеет полезный режим работы одной рукой. Просто коснитесь направленной вперед стрелки (или логотипа Google) в верхнем левом углу клавиатуры, затем нажмите кнопку с многоточием и выберите «Одноручное». Оттуда клавиатура уменьшится до одной стороны экрана, и вы можете использовать элементы управления рядом с клавиатурой, чтобы переместить ее на другую сторону или заставить ее снова заполнить всю ширину экрана.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    4. Разблокировать оскорбительные слова

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

    20 Tips to Help You Master Gboard for Android

    5. Поиск по имени эмодзи

    Когда вам нужно найти идеальный смайлик, просто нажмите кнопку со смайликом слева от пробела Gboard. Оттуда, вместо того, чтобы прокручивать все смайлы, просто коснитесь поля поиска в верхней части клавиатуры и введите имя смайлика, который вы ищете.На этом этапе остается лишь нажать на смайлик, который вы хотите отправить — намного проще, чем просеивать весь список.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    6. Быстрое переключение языков

    Если вы многоязычны и общаетесь с людьми, говорящими на разных языках, вы будете рады узнать, что в Gboard можно использовать более одного языка. В главном меню настроек клавиатуры нажмите «Языки», затем выберите любые дополнительные языки из списка, чтобы начать.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

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

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    Затем перейдите к Preferences в главном меню Gboard, затем убедитесь, что опция «Показать клавишу переключения смайлов» отключена. Когда вы закончите, теперь вы можете долго нажимать значок земного шара слева от пробела Gboard, чтобы быстро переключиться на другую клавиатуру.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    7. Измените тему по умолчанию

    Gboard предлагает несколько тем для Android, поэтому вам не нужно придерживаться этого скучного белого стиля по умолчанию.Чтобы проверить, коснитесь стрелки вперед (или логотипа Google) в верхней части клавиатуры, затем коснитесь кнопки с многоточием (…) и выберите «Настройки». Оттуда перейдите к Themes , там вы найдете десятки цветов и даже красивый фон на выбор. Выберите один, затем нажмите «Применить», чтобы попробовать. Вы даже можете нажать на значок «+» в верхнем левом углу списка тем, чтобы добавить собственное изображение в качестве настраиваемой темы.

    8. Говорите, что хотите печатать

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

    20 Tips to Help You Master Gboard for Android

    9. Легкий доступ к пунктуации

    Если вам нужно использовать какую-либо форму пунктуации, кроме точки или запятой, вы, , можете перейти в меню специальных символов, нажав кнопку «? 123», но есть более быстрый путь. Просто нажмите и удерживайте точку, и появится меню.Оттуда проведите пальцем по знаку препинания, который хотите использовать, и отпустите, чтобы добавить его.

    20 Tips to Help You Master Gboard for Android

    10. Используйте слова быстрее

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

    20 Tips to Help You Master Gboard for Android

    11. Создание сочетаний клавиш

    Функция сочетания клавиш Gboard может значительно упростить набор общих слов и фраз, но настройки этого совета довольно глубоко скрыты.Для начала коснитесь логотипа Google или направленной вперед стрелки в верхнем левом углу клавиатуры, затем нажмите значок с многоточием (…) и выберите «Настройки». Оттуда перейдите в «Словарь», затем нажмите «Личный словарь» и выберите свой основной язык на следующем экране.

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

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    12. Используйте поиск Google

    Одной из самых крутых функций Gboard является то, что в него встроены возможности поиска Google. Чтобы попробовать, либо нажмите логотип Google (в зависимости от ваших настроек), либо нажмите направленную вперед стрелку в верхнем левом углу Gboard, а затем нажмите значок поиска. Оттуда вы можете искать практически все, и ответ будет представлен в Gboard в виде карточки сети знаний.Просто выберите карту, чтобы поделиться ею!

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    13. Найдите и поделитесь GIF-изображениями

    Честно говоря, я думаю, что основная причина, по которой Gboard стал настолько популярным в последнее время, — это его функция GIF. Есть два способа найти и поделиться GIF прямо с клавиатуры.

    Первый способ прост — просто коснитесь логотипа Google или стрелки, направленной вперед, затем выберите «GIF». Оттуда найдите термин, и вы увидите список связанных GIF-файлов. Второй метод аналогичен — коснитесь логотипа Google или стрелки, направленной вперед, затем коснитесь значка поиска и введите тему (например, совет 9), но на этот раз нажмите кнопку «GIF» под результатами поиска.Оттуда, в любом случае, просто коснитесь GIF-изображения, чтобы поделиться им в любом совместимом приложении.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    14. Введите дроби

    Если вам когда-нибудь понадобится ввести дробь, просто нажмите и удерживайте любое число в Gboard. Всплывающее меню покажет вам список общих дробей, которые используют долгое нажатие числа в качестве числителя, поэтому, например, долгое нажатие цифры 1 отобразит такие параметры, как ½ и ¼. Дроби будут введены в любое текстовое поле ввода как фактический символ Unicode для этого значения.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    15. Включение числовой строки

    Вместо переключения между раскладками клавиатуры, когда вы хотите ввести число, вы можете добавить ряд цифр над обычными клавишами QWERTY, как на физической клавиатуре. Чтобы быстро включить или выключить числовую строку, коснитесь символа Google, затем нажмите значок шестеренки, чтобы открыть настройки Gboard. Оттуда нажмите ссылку «Настройки», где вы увидите ползунок для активации или деактивации числовой строки.

    20 Tips to Help You Master Gboard for Android

    16. Перевод текста на лету

    Если вы изучаете другой язык или просто хотите отправить кому-то сообщение на его родном языке, Gboard теперь имеет встроенную мощь Google Translate.Чтобы попробовать, коснитесь логотипа Google, затем выберите крайний левый значок. Оттуда выберите языки ввода и вывода, тогда все, что вы вводите, будет автоматически переведено.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    17. Удаление слова одним движением

    Еще одна удобная функция Gboard — это возможность быстро удалить слово, проведя пальцем влево от кнопки возврата. Быстрое и короткое смахивание удалит последнее введенное вами слово.

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    18. Удаление предложений одним движением

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

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android

    19. Синхронизация словаря

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

    Итак, чтобы ваш личный словарь переносился на другие устройства, зайдите в меню настроек Gboard, затем выберите «Словарь» и убедитесь, что опция «Синхронизировать выученные слова» включена.Обратите внимание, что это будет работать, только если вы вошли в одну и ту же учетную запись Google на всех своих устройствах.

    20 Tips to Help You Master Gboard for Android

    20. Используйте код Морзе

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

    20 Tips to Help You Master Gboard for Android 20 Tips to Help You Master Gboard for Android Изображения Джастина Мейерса / Gadget Hacks

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

    Не пропустите: 20 советов, которые помогут вам освоить Gboard для iPhone

    Обеспечьте безопасность подключения без ежемесячного счета .Получите пожизненную подписку на VPN Unlimited для всех своих устройств при единовременной покупке в новом магазине Gadget Hacks Shop и смотрите Hulu или Netflix без региональных ограничений.

    Купить сейчас (80% скидка)>

    Обложка, скриншоты и GIF-файлы от Dallas Thomas / Gadget Hacks (если не указано иное)
    ,Настройка

    linphone для android на windows7 с android studio | Android

    Yknox

    Привет!!
    Мне интересен ваш проект.Я эксперт в Android, iphone, Object C, Cocos-2dx, C / C ++, веб-дизайне, Php, обратном проектировании.
    Я могу сделать твой проект.
    Я новый фрилансер, но у меня большой опыт работы с
    Больше

    $ 263 USD за 3 дня (-я)

    ,

    Добавить комментарий

    Ваш адрес email не будет опубликован.