Как написать свою клавиатуру для Android
Здравствуйте. В данной статье я постараюсь рассказать и показать основные моменты написания собственной клавиатуры для Android’а. Статья предназначена для разработчиков, которые с этим не сталкивались, но имеют опыт знакомства с Android’ом.
Сразу оговорюсь, что мнение и код автора не являются истинной в последней инстанции, а ваши предложения и критика лишь приветствуются. И если не охота все читать, ссылка на исходники в конце статьи.
Для начала необходимо создать пустой Android проект без Activity. После этого приступим к подготовке .xml файлов, которые будут описывать Android’у нашу клавиатуру.
Базовый layout-файл, keyboard.xml
Содержит в себе View класс Android’а под названием KeyboardView и описывает внешний вид клавиатуры.
- android: keyPreviewHeight — задает высоту элемента подсказки, на котором отображается текущая нажатая клавиша.
- android:keyPreviewLayout — указываем layout-файл, который описывает внешний вид preview’шки.
Важный момент, атрибут background является обязательным, если его не указать, то при каждом нажатии клавиши ваша клавиатура будет падать.
Описание раскладки
Итак, мы подготовили 2 .xml файла, которые описывают внешний вид, теперь настал черед описать саму раскладку клавиатуры. Назовем этот файл keys_definition_ru.xml и находится он будет в xml ресурсах проекта. Здесь будет представлен лишь его кусок, так как файл достаточно большой.
Все атрибуты описывать не будем, лишь «не очевидные».
- android:horizontalGap — горизонтальный отступ между клавишами
- android: verticalGap — вертикальный отступ
- android:codes — код нужного символа в html utf-8 (и не только utf-8, подробнее в оф. документации)
- android:keyEdgeFlags — атрибут может применять значение left или right. Эти атрибуты добавляются клавишам, которые расположены в самом левом крае или самом правом крае клавиатуры
- android:isRepeatable — повторять действие клавиши при долгом нажатии (обычно используется на пробеле или backspace)
InputMethodService — сервис клавиатуры
Теперь, после того как мы создали все необходимые xml файлы, приступаем к описанию сервиса, который будет слушать события InputMethod.
Для этого создадим сервис, наследуясь от InputMethodService и сразу реализуем интерфейс KeyboardView.OnKeyboardActionListener. В итоге у вас получиться набор методов, которые вы можете переопределить и наполнить необходимой функциональностью, которые позволяют широко кастомизировать вашу клавиатуру. Но здесь я приведу лишь примеры базовых моментов.
Методы onCreateInputView и onKey
@Override public View onCreateInputView() < mKeyboardView = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard, null); mKeyboard = new Keyboard(this, R.xml.keys_definition_ru); mKeyboard.setShifted(isCapsOn); //приводим клавиатуру к верхнему регистру, если шифт нажат включен mKeyboardView.setKeyboard(mKeyboard); mKeyboardView.setOnKeyboardActionListener(this); return mKeyboardView; >@Override public void onKey(int primaryCode, int[] ints) < Log.d(TAG, "onKey " + primaryCode); InputConnection ic = getCurrentInputConnection(); playClick(primaryCode); switch (primaryCode) < case Keyboard.KEYCODE_DELETE: ic.deleteSurroundingText(1, 0); break; case Keyboard.KEYCODE_SHIFT: handleShift(); break; case Keyboard.KEYCODE_DONE: ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); break; case Keyboard.KEYCODE_ALT: handleSymbolsSwitch(); break; case Keyboard.KEYCODE_MODE_CHANGE: handleLanguageSwitch(); break; default: char code = (char) primaryCode; if (Character.isLetter(code) && isCapsOn) < code = Character.toUpperCase(code); >ic.commitText(String.valueOf(code), 1); break; > >
Одним из методов жизненного цикла InputMethodService является onCreateInputView внутри которого мы создаем View клавиатуры и привязываем к ней необходимые листенеры.
Событие onKey срабатывает между onPress и onRelease, на вход им подается код нажатой клавиши.
Итак, все готово… почти, осталось добавить наш сервис в манифест.
Поздравляю, вы написали свою первую клавиатуру!
Как создать свой язык и шрифт для клавиатуры?
Приветствую. Мне нужно создать свой шрифт с языком для клавиатуры (для ПК и андроида). Установил FontLab, вроде понятно, но. если я создам просто шрифт, то там будет только один язык, мой, правильно? А как сделать так, чтобы на клавиатуре появился другой язык со своим (моим) шрифтом? Чтобы можно было просто переключаться как с русского на англ и обратно.
С программой FontLab познакомился буквально сегодня. Нормальных видео туториалов не нашел. Если есть более удобные и понятные программы, буду рад совету.
P.S. создаваемый мной шрифт идет справа налево и почему то в начале каждой строки выводит ^. Вообще для меня сложный вопрос
- Вопрос задан более трёх лет назад
- 6950 просмотров
Изменение раскладки клавиатуры
В этой статье описано изменение раскладки клавиатур Майкрософт, указанных в разделе «Информация в данной статье применима к».
Клавиатуру можно настроить для другого языка или раскладки, например канадской многоязычной, испанской или раскладки США по Двораку. Вместе с системой Microsoft Windows устанавливается большой набор раскладок клавиатуры.
Как правило, настраивать раскладку клавиатуры в Windows приходится для того, чтобы обеспечить соответствие используемой клавиатуре. При выборе другой раскладки имейте в виду, что символы на клавиатуре могут не совпадать с теми, которые отображаются на экране.
Дополнительная информация
Чтобы настроить клавиатуру для другого языка или раскладки, воспользуйтесь способом, соответствующим версии операционной системы Windows.
Примечание. В описании этих способов в качестве примера используется канадская раскладка клавиатуры для французского языка.
Windows 7 или Windows Vista
- Нажмите кнопку Пуск, в поле Начать поиск введите команду intl.cpl и нажмите клавишу ВВОД.
- На вкладке Клавиатура и языки нажмите кнопку Изменить клавиатуру.
- Нажмите кнопку Добавить.
- Разверните нужный язык, например «Французский (Канада)».
- Разверните список раскладок, установите флажок Канадская французская и нажмите кнопку OK.
- В разделе параметров выберите элемент Просмотр раскладки, чтобы сравнить ее с клавиатурой.
- В списке Язык ввода по умолчанию выберите пункт Французский (Канада) — Канадская французская и нажмите кнопку ОК два раза.
Windows XP
- Нажмите кнопку Пуск, введите команду intl.cpl в поле Выполнить и нажмите клавишу ВВОД.
- На вкладке Языки нажмите кнопку Подробнее.
- В разделе «Установленные службы» нажмите кнопку Добавить.
- В списке Язык ввода выберите нужный язык, например Французский (Канада).
- В списке Раскладка клавиатуры или метод ввода (IME) выберите пункт Канадская (французская) и нажмите кнопку ОК.
- В списке Выберите один из установленных языков ввода, который будет использоваться при загрузке компьютера, выберите пункт Французский (Канада) — Канадская французская и нажмите кнопку ОК.
- В диалоговом окне Язык и региональные стандарты нажмите кнопку ОК.
Проверка соответствия выбранной раскладки и клавиатуры
Windows 7 или Windows Vista
- Нажмите кнопку «Пуск», в поле Начать поиск введите команду osk и нажмите клавишу ВВОД.
- Сравните клавиатуру на экране с физической клавиатурой и убедитесь в том, что раскладки совпадают.
- Чтобы проверить символы в верхнем регистре, нажмите клавишу SHIFT на клавиатуре или экране и сравните символы.
Windows XP
- Нажмите кнопку Пуск, введите команду osk в поле Выполнить и нажмите клавишу ВВОД.
- Сравните клавиатуру на экране с физической клавиатурой и убедитесь в том, что раскладки совпадают.
- Чтобы проверить символы в верхнем регистре, нажмите клавишу SHIFT на клавиатуре или экране и сравните символы.
Ссылки
Дополнительные сведения о языковой панели см. в следующей статье базы знаний Майкрософт:
306993 Как использовать языковую панель в Microsoft Windows XP
Дополнительные сведения об использовании раскладки клавиатуры «США — международная» см. в следующей статье базы знаний Майкрософт:
306560 Как пользоваться раскладкой клавиатуры «США — международная» в Windows XP
Fontmaker – шрифтовая клавиатура 1.8.2.55
Fontmaker — приложение позволяющее создавать собственный шрифт с почерком и использовать его в качестве клавиатуры в Messages, Instagram*, Snapchat, Tiktok, Facebook* и других приложениях для общения с друзьями.
Подписывайтесь на наш Телеграм
Используйте свой собственный почерк в чате с друзьями, чтобы сделать его более личным и интимным.
- Пользователи могут создавать свои собственные шрифты, используя более чем 1000 заранее подготовленных элементов.
- Интерфейс Fontmaker прост и интуитивно понятен, что делает процесс создания шрифтов еще более увлекательным.
- Пользователи могут настроить размер, цвет и форму шрифта, а также добавить различные эффекты и текстуры.
- Fontmaker поддерживает множество языков, что делает его идеальным инструментом для создания персонализированных шрифтов для различных языков.
- Созданные шрифты можно использовать в других приложениях, таких как социальные сети, мессенджеры и т.д.
* Деятельность Meta* (соцсети Facebook* и Instagram*) запрещена в России как экстремистская.