Как сделать клавиатуру для Android
Обновлено: 21.11.2024
Системная клавиатура
В этом ответе рассказывается, как создать пользовательскую системную клавиатуру, которую можно использовать в любом приложении, установленном пользователем на своем телефоне. Если вы хотите сделать клавиатуру, которая будет использоваться только в вашем собственном приложении, посмотрите мой другой ответ.
Пример ниже будет выглядеть так. Вы можете изменить его для любой раскладки клавиатуры.
Следующие шаги показывают, как создать работающую пользовательскую системную клавиатуру. Насколько это было возможно, я старался удалить весь ненужный код. Если вам нужны другие функции, я предоставил ссылки на дополнительную помощь в конце.
1. Начать новый проект для Android
Я назвал свой проект «Пользовательская клавиатура». Назовите это как хотите. Здесь нет ничего особенного. Я просто оставлю MainActivity и «Hello World!» планировка как она есть.
2. Добавьте файлы макета
Добавьте следующие два файла в папку res/layout вашего приложения:
keyboard_view.xml
Это представление похоже на контейнер, в котором будет храниться наша клавиатура. В этом примере есть только одна клавиатура, но вы можете добавить другие клавиатуры и поменять местами их в этом KeyboardView.
key_preview.xml
Предварительный просмотр клавиш — это раскладка, которая появляется при нажатии клавиши на клавиатуре. Он просто показывает, какую клавишу вы нажимаете (на случай, если ваши большие толстые пальцы закрывают ее). Это не всплывающее окно с множественным выбором. Для этого вы должны проверить представление Кандидаты.
Создайте папку xml в папке res. (Щелкните правой кнопкой мыши res и выберите «Создать» > «Каталог».)
Затем добавьте в него следующие два XML-файла. (Щелкните правой кнопкой мыши папку xml и выберите «Создать» > «Файл ресурсов XML».)
number_pad.xml
Здесь все становится интереснее. Эта клавиатура определяет расположение клавиш.
Вот что нужно отметить:
keyWidth: это ширина по умолчанию для каждой клавиши. 20%p означает, что каждый ключ должен занимать 20% ширины родителя. Однако его можно переопределить отдельными клавишами, как вы можете видеть, это произошло с клавишами Delete и Enter в третьем ряду.
keyHeight: здесь это жестко закодировано, но вы можете использовать что-то вроде @dimen/key_height, чтобы динамически устанавливать его для разных размеров экрана.
Пробел: Горизонтальный и вертикальный промежутки показывают, сколько места должно быть оставлено между клавишами. Даже если вы установите его на 0 пикселей, все равно остается небольшой зазор.
codes: это может быть Unicode или значение пользовательского кода, определяющее, что происходит или что вводится при нажатии клавиши. См. keyOutputText, если вы хотите ввести более длинную строку Unicode.
keyLabel: это текст, который отображается на клавише.
keyEdgeFlags: указывает, по какому краю должен быть выровнен ключ.
isRepeatable: если вы удерживаете клавишу, ввод будет повторяться.
method.xml
Этот файл сообщает системе о доступных подтипах методов ввода. Я просто включаю минимальную версию здесь.
Создайте новый файл Java. Назовем его MyInputMethodService. Этот файл связывает все вместе. Он обрабатывает ввод, полученный с клавиатуры, и отправляет его в любое представление, которое его получает (например, EditText).
открытый класс MyInputMethodService расширяет InputMethodService, реализует KeyboardView.OnKeyboardActionListener
@Override
public View onCreateInputView() // получаем KeyboardView и добавляем в него нашу раскладку клавиатуры
KeyboardView keyboardView = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard_view, null) ;
Keyboard keyboard = new Keyboard(this, R.xml.number_pad);
keyboardView.setKeyboard(клавиатура);
keyboardView.setOnKeyboardActionListener(это);
вернуть клавиатуру View;
>
@Override
public void onKey(int primaryCode, int[] keyCodes)
@Override
public void onPress(int primaryCode)
@Override
public void onRelease(int primaryCode)
@Override
public void onText(CharSequence text)
@Override
public void swipeLeft()
@Override
public void swipeRight()
@Override
public void swipeDown()
@Override
public void swipeUp() < >
>
Прослушиватель OnKeyboardActionListener прослушивает ввод с клавиатуры. В этом примере также требуются все эти пустые методы.
InputConnection используется для отправки ввода в другое представление, например EditText.
Я поставил это последним, а не первым, потому что он относится к файлам, которые мы уже добавили выше. Чтобы зарегистрировать пользовательскую клавиатуру в качестве системной, необходимо добавить служебный раздел в файл AndroidManifest.xml. Поместите его в раздел приложений после активности.
…
Вот оно! Теперь вы сможете запустить свое приложение. Однако вы мало что увидите, пока не включите клавиатуру в настройках.
6.Включите клавиатуру в настройках
Каждый пользователь, который хочет использовать вашу клавиатуру, должен будет включить ее в настройках Android. Подробные инструкции о том, как это сделать, смотрите по следующей ссылке:
Как установить клавиатуру по умолчанию на телефоне Android
Вот сводка:
Откройте «Настройки Android» > «Языки и ввод» > «Текущая клавиатура» > «Выбрать клавиатуру».
Вы должны увидеть свою пользовательскую клавиатуру в списке. Включите его.
Вернитесь назад и снова выберите Текущая клавиатура. Вы должны увидеть свою пользовательскую клавиатуру в списке. Выберите его.
Теперь вы сможете использовать клавиатуру везде, где вы можете печатать в Android.
Дальнейшее изучение
Приведенную выше клавиатуру можно использовать, но для создания клавиатуры, которую захотят использовать другие люди, вам, вероятно, придется добавить больше функций. Изучите ссылки ниже, чтобы узнать, как это сделать.
Создание метода ввода (документация Android)
SoftKeyboard (исходный код из Android для демонстрационной пользовательской клавиатуры)
Создание пользовательской клавиатуры Android (учебник) (исходный код)
Создание пользовательской Клавиатура на Android (руководство по tutsplus)
Как создать пользовательскую клавиатуру для Android (видео на YouTube: она беззвучна, но я впервые узнал, как это сделать).
Продолжение
Не нравится внешний вид и поведение стандартного KeyboardView? Я, конечно, нет. Похоже, он не обновлялся с Android 2.0. Как насчет всех этих пользовательских клавиатур в Play Store? Они совсем не похожи на уродливую клавиатуру выше.
Хорошая новость заключается в том, что вы можете полностью настроить внешний вид и поведение своей клавиатуры. Вам нужно будет сделать следующее:
Создайте собственное представление клавиатуры, которое является подклассом ViewGroup. Вы можете заполнить его кнопками или даже создать свои собственные ключевые представления, которые являются подклассами View. Если вы используете всплывающие окна, обратите внимание на это.
Добавьте настраиваемый интерфейс прослушивателя событий на клавиатуру. Вызывайте его методы для таких вещей, как onKeyClicked(String text) или onBackspace().
Вам не нужно добавлять keyboard_view.xml, key_preview.xml или number_pad.xml, описанные выше, поскольку все они предназначены для стандартного KeyboardView. Вы будете обрабатывать все эти аспекты пользовательского интерфейса в своем пользовательском представлении.
В своем классе MyInputMethodService реализуйте пользовательский прослушиватель клавиатуры, который вы определили в своем классе клавиатуры. Это вместо KeyboardView.OnKeyboardActionListener, который больше не нужен.
В методе onCreateInputView() класса MyInputMethodService создайте и верните экземпляр пользовательской клавиатуры. Не забудьте установить это для пользовательского слушателя клавиатуры.
В первую очередь вам понадобится файл keyboard.xml, который будет помещен в папку res/xml (если папка не существует, создайте ее).
**Обратите внимание, что вам нужно будет создать backspace drawable и поместить его в папку res/drawable-ldpi с очень маленьким размером (например, 18 × 18 пикселей).
Затем в XML-файле, который вы хотите чтобы его использовать (где находится ваш TextView), вы должны добавить следующий код:
**Обратите внимание, что XML-файл, в который вы поместите android.inputmethodservice.KeyboardView, должен быть RelativeLayout, чтобы можно было установить alignParentBottom="true" (обычно клавиатуры представлены в нижней части окна). screen)
Затем вам нужно добавить следующий код в функцию onCreate Activity, которая обрабатывает TextView, к которому вы хотите подключить клавиатуру
// Создать клавиатуру
mKeyboard= new Keyboard( это,R.xml.keyboard);
// Поиск KeyboardView
mKeyboardView= (KeyboardView)findViewById(R.id.keyboardview);
// Прикрепляем клавиатуру к представлению
mKeyboardView.setKeyboard( mKeyboard );
// Не показывать всплывающие подсказки
//mKeyboardView.setPreviewEnabled(false);
// Устанавливаем обработчик ключей
mKeyboardView.setOnKeyboardActionListener(mOnKeyboardActionListener);
**Обратите внимание, что mKeyboard и mKeyboardView — это частные переменные класса, которые необходимо создать.
Тогда вам нужна следующая функция для открытия клавиатуры (вы должны связать ее с TextView через свойство onClick xml)
public void openKeyboard(View v)
mKeyboardView.setVisibility(View.VISIBLE );
mKeyboardView.setEnabled(true);
if( v!=null)((InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(v.getWindowToken(), 0);
>
И, наконец, вам нужен OnKeyboardActionListener, который будет обрабатывать ваши события. чтобы узнать, какая клавиша нажата
//на основе свойства android:codes
if(primaryCode==1)
Log.i("Key", "Вы только что нажали 1 кнопку") ;
>
>
@Override public void onPress(int arg0) >
@Override public void onRelease(int primaryCode) >
@Override public void onText(CharSequence text) >
@Override public void swipeDown() >
@Override public void swipeLeft() >
@Override public void swipeRight() >
@Override public void swipeUp() >
>;
Надеюсь, это поможет.
Большая часть кода находится здесь
____________________________________________________________-
РЕДАКТИРОВАТЬ:
Поскольку KeyboardView устарел с уровня API 29, вы можете найти его код на этом веб-сайте и создать класс в своем коде. перед реализацией клавиатуры, как описано выше.
Существует множество способов сделать собственную клавиатуру для устройства Android. Большинство решений в Интернете включают в себя кодирование собственной клавиатуры. Мы не хотим заходить так далеко, так как это требует от пользователя слишком много специальных навыков.
Помимо самостоятельного написания кода, вы можете создать собственную клавиатуру для Android с помощью приложений и некоторых настроек. Это очень просто сделать, и вы можете полностью изменить внешний вид и функции клавиатуры Android.
Какие настраиваемые клавиатуры доступны на Android?
Мы решили создать это руководство после поиска простого способа получить пользовательскую клавиатуру Android. Оказывается, найти информацию об этом намного сложнее, чем мы думали.
Почти во всех онлайн-руководствах объясняется, как создать пользовательскую клавиатуру Android для собственного приложения. Это полезно только в том случае, если вы хотите создать собственное приложение для Android. Мы провели небольшое исследование и нашли множество способов сделать собственную клавиатуру без написания кода.
Если вы ищете пользовательскую клавиатуру для приложения, которое вы пишете, это руководство не для вас. Вместо этого вы можете обратиться к этому руководству, чтобы узнать, как закодировать собственный пользовательский интерфейс с клавиатурой.
Самый простой способ настроить клавиатуру Android — загрузить приложение, которое сделает это за вас.
Существует множество вариантов, позволяющих сделать это всего за несколько нажатий. В официальном магазине Google Play Store есть множество приложений на выбор. Если вам не нравится ни одно из них, есть множество отличных приложений из неофициальных источников.
Пользовательская клавиатура и обычная клавиатура Android
Использование пользовательской клавиатуры дает множество преимуществ. Главное, очевидно, эстетика. После долгих лет использования скучной серой клавиатуры увидеть красивую и красочную клавиатуру кажется почти волшебством.
Кроме того, это обязательно произведет впечатление на всех ваших друзей, когда они увидят, как вы вытаскиваете свою причудливую персонализированную клавиатуру.
Еще одним фактором является возможность использовать расширенные возможности ввода. Многие приложения для клавиатуры Android позволяют набирать текст, включая жесты смахивания.
Это позволяет быстрее печатать, позволяя искусственному интеллекту предсказывать, что вы собираетесь печатать. Это намного быстрее, чем обычная автокоррекция.
Есть также некоторые дополнения, которые позволяют печатать, не отрывая пальца. Все, что вам нужно сделать, это провести пальцем по буквам, позволяя ИИ предсказать наиболее подходящее слово.
Пользовательские клавиатуры Android также упрощают доступ к эмодзи и GIF-файлам. Вы можете выбрать, откуда вы хотите активировать определенные библиотеки.
Таким образом вы можете удалить функции и команды, которые никогда не используете. Это экономит много места и позволяет более эффективно работать с клавиатурой.
Еще одно преимущество пользовательской клавиатуры Android перед обычной клавиатурой — настраиваемый макет. Вы можете настроить язык клавиатуры вместе с позициями клавиш.
Это позволит вам оптимизировать процесс набора текста на устройстве Android. Больше никаких орфографических ошибок из-за случайного нажатия неправильной буквы.
Как сделать собственную клавиатуру для Android
Вы можете установить пользовательские клавиатуры из официального Google PlayStore, а также из неофициального APK-файла. Определенно проще и безопаснее использовать PlayStore, так как Google проверяет все файлы. Пользовательские неофициальные приложения дают вам больше свободы, но могут иметь некоторые сомнительные функции, о которых пользователю не сообщается. Мы рекомендуем устанавливать APK с осторожностью.
Использование Google PlayStore
Первым шагом к созданию собственной версии клавиатуры Android является загрузка одного из пользовательских приложений для клавиатуры.
Чтобы активировать новую клавиатуру, сначала необходимо перейти в «Настройки».
Найдите вкладку "Язык и ввод" в "Системных настройках".
Должно открыться новое меню с набором параметров настройки клавиатуры.
Откройте вкладку «Виртуальная клавиатура», чтобы просмотреть доступные параметры пользовательской клавиатуры. Оттуда вы сможете увидеть все загруженные вами клавиатуры в категории «Управление клавиатурами».
Вы можете активировать несколько клавиатур одновременно, если хотите объединить несколько функций в одну.
Использование пользовательского APK-файла
Иногда установка любого пользовательского приложения на устройство Android может оказаться сложной задачей. Это связано с постоянными обновлениями операционной системы Android.
Способ включения установки APK-файлов меняется почти при каждом обновлении. Однако самый простой способ включить установку пользовательских приложений для клавиатуры — загрузить их на свой телефон. Это означает, что вам нужно загрузить APK-файл на свой телефон и сохранить его в памяти.
Затем вы можете использовать приложение Android «Диспетчер файлов», чтобы перейти к нему. После этого ваше устройство Android должно запросить разрешения на установку из неизвестных источников.
Теперь вы сможете устанавливать любые пользовательские приложения и игры, просто скачав APK-файлы. Мы рекомендуем соблюдать осторожность, так как любые неофициальные файлы не могут быть подтверждены Google. Они могут содержать вредоносные файлы или вирусы.
Лучшие пользовательские клавиатуры для Android в Google PlayStore
Эти приложения не расположены в определенном порядке, так как все они должны быть отличными. Все они имеют разные функции и настраиваемые функции, поэтому обязательно попробуйте их.
Лучше попробовать их все, чтобы понять, какой из них оптимален для ваших нужд. Все эти приложения можно использовать бесплатно, но в большинстве из них есть встроенные покупки.
Нажмите на значки приложений ниже, чтобы перейти непосредственно на страницу Google PlayStore.
Клавиатура FancyKey
Цена: бесплатно / до 19,99 долларов США
Издатель: FancyKey Keyboard Labs
Клавиатура FancyKey — одна из самых популярных альтернативных клавиатур для Android. Приложение установили более 10 миллионов раз.
В приложение включено множество различных функций. FancyKey имеет более 3000 различных смайликов и более 70 стилей шрифтов. Помимо настраиваемых тем и даже звуков, приложение поддерживает более 50 различных языков.
Кроме того, в приложении есть расширенная функция автокоррекции и рекомендации по более быстрому набору текста. Это отличное дополнение к поддерживаемому механизму смахивания, позволяющему вводить текст, проводя пальцем по клавишам.
FancyKey даже поддерживает анимированные эффекты набора текста. Если вам нравятся только некоторые из включенных функций, вы можете объединить это приложение с одним из приведенных ниже.
Fleksy: быстрая клавиатура
Цена: бесплатно / до 2,99 доллара США
Издатель: Thingthing Ltd
Клавиатура Fleksy очень похожа на FancyKey. Это настраиваемая клавиатура со смайликами, темами, наклейками и многим другим.
У приложения примерно вдвое меньше установок, но у него более высокие оценки в PlayStore.
Поддержка языков так же обширна, как и у большинства других пользовательских клавиатур.
Fleksy гордится тем, что является самой быстрой пользовательской клавиатурой Android согласно Книге рекордов Гиннеса.
Кто знает, как можно измерить эту статистику, но может поверить им на слово. Возможно, вам стоит попробовать Fleksy и посмотреть, стоит ли оно всей шумихи.
Клавиатура бота ai.type
Цена: бесплатно
Издатель: ai.type
Это пользовательское приложение для клавиатуры Android немного интереснее. Он поставляется с обычными наворотами, которые есть у других, но также и с некоторыми уникальными.
Помимо голосового комментария и поддержки смахивания, в приложении есть интересное дополнение — так называемые «боты».
Главной достопримечательностью AI Type Bot являются всплывающие окна. Приложение добавляет классные всплывающие окна над клавиатурой в зависимости от того, что вы сейчас делаете.
Например, он может навести курсор на кнопку, чтобы мгновенно показать погоду или оплатить счет с помощью PayPal.
Приложение полностью шифрует все входные данные и не сохраняет конфиденциальные данные. Он анализирует только текст, который вы вводите на лету, и использует его для предоставления полезных подсказок.
Клавиатура SwiftKey
Цена: бесплатно
Издатель: SwiftKey
SwiftKey – это специальная клавиатура для Android, разработанная Microsoft. Он основан исключительно на механике смахивания, что позволяет быстро и эффективно печатать.
Клавиатура SwiftKey — одна из первых в своем роде и, безусловно, самая популярная. Его установили более 100 миллионов раз, и у него отличные отзывы пользователей.
SwiftKey адаптируется к вашим привычкам набора текста с помощью искусственного интеллекта. Чем больше вы его используете, тем эффективнее он становится.
В приложении есть множество эмодзи и настраиваемых тем, позволяющих настроить его по своему вкусу.
SwiftKey поддерживает более 300 различных языков и позволяет одновременно использовать до 5 различных языков.
Это очень безопасное и актуальное приложение, поэтому оно занимает первое место в нашем списке.
Клавиатура Cheetah
Цена: бесплатно / до 169,99 долларов США
Издатель: Cheetah Keyboard
Клавиатура Cheetah – одна из самых многофункциональных альтернатив. Многие уникальные функции приложений стоят денег, но мы думаем, что они того стоят.
Помимо множества тем и смайликов, вы даже можете использовать классные 3D-темы.
Некоторые из основных функций включают интеллектуальную систему ответов и прогнозы на основе искусственного интеллекта.
Технология Fast Swype Cheetah Keyboards гарантирует, что вы будете печатать быстрее и точнее.
Мы настоятельно рекомендуем вам попробовать эти функции и убедиться, что они действительно того стоят.
Создание пользовательских функций клавиатуры Android
Сопоставление клавиатуры/кнопок
Цена: бесплатно
Издатель: sds100
Самый простой способ назначить пользовательские функции на клавиатуру Android — загрузить Keyboard/Button Mapper. Вы можете переназначить практически любые клавиши и кнопки, чтобы активировать полезные функции.
Например, вы можете сделать так, чтобы любая кнопка активировала камеру или регулировала громкость. Это может повысить вашу продуктивность и облегчить жизнь.
Некоторые телефоны имеют специальные кнопки, которые невозможно переназначить из-за ограничений производителя.
Большинство функций должны работать вместе с другими пользовательскими приложениями для клавиатуры, перечисленными выше. Это приложение также с открытым исходным кодом, и вы можете легко приостанавливать и возобновлять свои ярлыки. Таким образом, вы можете гарантировать отсутствие возможности нечестной игры.
Поиск неофициальных приложений и файлов APK
Существует множество мест и приложений с огромными коллекциями неофициальных приложений. Однако вам следует проявлять осторожность при установке приложений из непроверенных источников, поскольку вы никогда не знаете, что они могут содержать.
Один из наших любимых источников пользовательских приложений и APK-файлов — форум разработчиков XDA. Это огромное сообщество, которое уже много лет является одним из крупнейших игроков в индустрии приложений для Android.
Пример замечательного приложения, которое нельзя найти в официальном магазине Google PlayStore, называется YMusic.
Это специальное приложение YouTube, которое можно использовать для воспроизведения музыки с YouTube без рекламы. Вы также можете свернуть проигрыватель и не тратить трафик на загрузку видеопотока.
Существует множество других источников пользовательских файлов APK, которые вы можете легко найти с помощью Google. Мы рекомендуем использовать форумы и другие источники, где пользователи могут оставлять отзывы и обзоры. Так вы обезопасите себя и найдете качественные приложения.
Что вы будете создавать
Большинство устройств Android не имеют физической клавиатуры. Вместо этого они полагаются на виртуальную или программную клавиатуру для принятия пользовательского ввода. Если вы увлекаетесь персонализацией Android, знание того, как создать собственную программную клавиатуру, может вывести ваше хобби на совершенно новый уровень.
С помощью Android SDK можно быстро создать программную клавиатуру, написав на удивление мало строк кода, поскольку SDK берет на себя множество низкоуровневых задач, таких как распознавание нажатия клавиш, рисование клавиатуры и установление связей между клавиатура и поля ввода.
В этом руководстве вы узнаете, как создать полнофункциональную программную клавиатуру, которая может служить клавиатурой по умолчанию на вашем устройстве Android.
Премиум-вариант
Если вы спешите, обратите внимание на темы для клавиатуры Android — готовое решение от Envato Market.
Это приложение дает вам возможность выбрать одну из 22 встроенных тем клавиатуры или создать собственную тему.
Или вы можете нанять фрилансера в Envato Studio. Просто просмотрите наш раздел «Мобильные устройства и приложения», и вы обязательно найдете эксперта, который сможет вам помочь.
Разработчики мобильных приложений и приложений в Envato Studio
Если вы предпочитаете создавать свои собственные, читайте дальше, чтобы узнать, как это сделать.
1. Предпосылки
Вам потребуется установленный пакет Eclipse ADT. Его можно загрузить с веб-сайта Android Developer.
2. Создать новый проект
Запустите Eclipse и создайте новое приложение для Android. Назовите это приложение SimpleKeyboard. Убедитесь, что вы выбрали уникальное имя пакета. Установите минимально необходимый SDK на Android 2.2 и установите целевой SDK на Android 4.4.
В этом приложении не будет действий, поэтому снимите флажок «Создать действие» и нажмите «Готово».
3. Изменить манифест
Мягкая клавиатура рассматривается операционной системой Android как редактор метода ввода (IME). IME объявлен как служба в AndroidManifest.xml, которая использует разрешение BIND_INPUT_METHOD и отвечает на действие android.view.InputMethod .
Добавьте следующие строки в тег приложения манифеста:
4. Создайте метод.xml
Тег службы в файле манифеста содержит тег метаданных, ссылающийся на XML-файл с именем method.xml. Без этого файла операционная система Android не распознает нашу Службу как действующую службу IME. Файл содержит сведения о методе ввода и его подтипах. Для нашей клавиатуры мы определяем один подтип для локали en_US. Создайте каталог res/xml, если он не существует, и добавьте в него файл method.xml. Содержимое файла должно быть:
5. Изменить файл strings.xml
Строки, используемые этим приложением, определены в файле res/values/strings.xml. Нам понадобятся три строки:
- название приложения
- ярлык IME
- ярлык подтипа IME
Обновите файл strings.xml, чтобы он имел следующее содержимое:
6. Определите раскладку клавиатуры
Раскладка нашей клавиатуры содержит только KeyboardView. Для атрибута layout_alignParentBottom установлено значение true, чтобы клавиатура отображалась внизу экрана.
Создайте файл с именем res/layout/keyboard.xml и замените его содержимое следующим:
keyPreviewLayout – это макет недолговечного всплывающего окна, которое появляется при каждом нажатии клавиши на клавиатуре. Он содержит один TextView . Создайте файл с именем res/layout/preview.xml и добавьте в него следующее:
6. Определите клавиши клавиатуры
Сведения о клавишах клавиатуры и их положениях указываются в XML-файле. Каждый ключ имеет следующие атрибуты:
- keyLabel : этот атрибут содержит текст, отображаемый на клавише.
- codes : этот атрибут содержит значения Unicode для символов, которые представляет ключ.
Например, чтобы определить ключ для буквы A, атрибут codes должен иметь значение 97, а атрибут keyLabel должен быть установлен на A.
Если с клавишей связано более одного кода, то символ, который представляет клавиша, будет зависеть от количества нажатий клавиши. Например, если ключ имеет коды 63, 33 и 58:
- одно нажатие клавиши приводит к появлению символа ?
- два последовательных нажатия приводят к появлению символа !
- три последовательных нажатия приводят к появлению символа :
Ключ также может иметь несколько необязательных атрибутов:
- keyEdgeFlags: этот атрибут может принимать значение left или right . Этот атрибут обычно добавляется к крайней левой и самой правой клавише строки.
- keyWidth : этот атрибут определяет ширину ключа. Обычно он определяется как процентное значение.
- isRepeatable : если для этого атрибута задано значение true , длительное нажатие клавиши будет повторять действие клавиши несколько раз. Обычно для клавиш удаления и пробела установлено значение true.
Клавиши клавиатуры сгруппированы в ряды. Рекомендуется ограничить количество клавиш в строке максимум десятью, при этом каждая клавиша должна иметь ширину, равную 10% клавиатуры. В этом уроке высота клавиш установлена на 60 dp. Это значение можно изменить, но значения меньше 48 dp не рекомендуются. Наша клавиатура будет иметь пять рядов клавиш.
Теперь мы можем приступить к разработке клавиатуры. Создайте новый файл с именем res/xml/qwerty.xml и замените его содержимое следующим:
Возможно, вы заметили, что некоторые ключи имеют отрицательные значения атрибута code. Отрицательные значения равны предопределенным константам в классе Keyboard. Например, значение -5 равно значению Keyboard.KEYCODE_DELETE .
7. Создайте класс обслуживания
Создайте новый класс Java и назовите его SimpleIME.java. Класс должен расширять класс InputMethodService и реализовывать интерфейс OnKeyboardActionListener. Интерфейс OnKeyboardActionListener содержит методы, которые вызываются при касании или нажатии клавиш виртуальной клавиатуры.
Класс SimpleIME должен иметь три переменных-члена:
- KeyboardView, ссылающийся на представление, определенное в макете
- экземпляр клавиатуры, назначенный для KeyboardView
- логическое значение, указывающее, включен ли регистр Caps Lock
После объявления этих переменных и добавления методов интерфейса OnKeyboardActionListener класс SimpleIME должен выглядеть следующим образом:
При создании клавиатуры вызывается метод onCreateInputView. Здесь можно инициализировать все переменные-члены службы. Обновите реализацию метода onCreateInputView, как показано ниже:
Далее мы создаем метод, который воспроизводит звук при нажатии клавиши. Мы используем класс AudioManager для воспроизведения звуков. Android SDK включает несколько звуковых эффектов по умолчанию для нажатия клавиш, которые используются в методе playClick.
Наконец, обновите метод onKey, чтобы наше приложение клавиатуры могло взаимодействовать с полями ввода (обычно представлениями EditText) других приложений.
Метод getCurrentInputConnection используется для подключения к полю ввода другого приложения. Получив соединение, мы можем использовать следующие методы:
- commitText для добавления одного или нескольких символов в поле ввода
- deleteSurroundingText, чтобы удалить один или несколько символов в поле ввода
- sendKeyEvent для отправки событий, например KEYCODE_ENTER, во внешнее приложение.
Всякий раз, когда пользователь нажимает клавишу на экранной клавиатуре, вызывается метод onKey со значением Unicode клавиши в качестве одного из параметров. В зависимости от этого значения клавиатура выполняет одно из следующих действий:
- Если используется код KEYCODE_DELETE , один символ слева от курсора удаляется с помощью метода deleteSurroundingText.
- Если используется код KEYCODE_DONE , запускается событие клавиши KEYCODE_ENTER.
- Если используется код KEYCODE_SHIFT , значение переменной caps изменяется, а состояние сдвига клавиатуры обновляется с помощью метода setShifted. Клавиатуру нужно перерисовывать при изменении состояния, чтобы метки клавиш обновлялись. Метод invalidateAllKeys используется для перерисовки всех ключей.
- Для всех остальных кодов код просто преобразуется в символ и отправляется в поле ввода. Если код представляет собой букву алфавита, а для переменной caps задано значение true , символ преобразуется в верхний регистр.
Обновите метод onKey, чтобы он выглядел следующим образом:
8. Тестирование клавиатуры
Теперь программная клавиатура готова к тестированию. Скомпилируйте и запустите его на Android-устройстве. У этого приложения нет Activity , а это значит, что оно не будет отображаться в панели запуска. Чтобы использовать его, его необходимо сначала активировать в настройках устройства.
После активации Simple IME откройте любое приложение, поддерживающее ввод текста (например, любое приложение для обмена сообщениями), и щелкните одно из его полей ввода. В области уведомлений должен появиться значок клавиатуры. В зависимости от вашего устройства вы можете щелкнуть этот значок или перетащить панель уведомлений вниз и выбрать Simple IME в качестве метода ввода. Теперь вы сможете печатать на новой клавиатуре.
Раньше в мобильных телефонах использовались жесткие операционные системы с небольшим количеством функций настройки или вообще без них. Даже сегодня iOS от Apple имеет ограниченные возможности для настройки раскладки клавиатуры по умолчанию. К счастью, Android предоставляет множество способов настройки экранной клавиатуры смартфонов. Если вам надоела раскладка клавиатуры по умолчанию, вот как настроить Gboard и использовать пользовательскую раскладку клавиатуры на телефонах Android.
Использование раскладок клавиатуры в Android
Есть веские причины, по которым пользователи хотят использовать собственные раскладки клавиатуры на телефонах Android.
- Некоторым пользователям нравится менять внешний вид, например цвет, чтобы не выглядеть скучно.
- Другие могут захотеть изменить весь макет, добавив дополнительные эмодзи и символы на клавиатуру.
- Иногда пользователи хотят установить собственную клавиатуру на своем втором языке для ввода сообщений.
Продолжайте читать статью, если хотите узнать больше обо всех этих функциях.
Примечание. Часто бренды мобильных телефонов предоставляют собственные клавиатуры. Прочтите руководство к телефону, чтобы узнать больше и настроить виртуальную клавиатуру бренда на Android.
Клавиатура Google (Gboard)
Gboard — клавиатура Google — это официальное приложение-клавиатура, разработанное Google для Android. Большинство телефонов Android поставляются с предустановленным приложением Gboard, а некоторые модели — без него. В этом случае вам необходимо сначала установить приложение, прежде чем настраивать его.
Настройка клавиатуры Google (Gboard)
- Откройте "Настройки" и перейдите в раздел "Система > Язык и ввод".
- Выберите «Экранная клавиатура» в появившемся списке меню. Он покажет список всех установленных клавиатур на вашем телефоне. Проверьте, доступен ли пункт «Gboard» в списке.
- Если «Gboard» нет в списке, перейдите в магазин Google Play и установите приложение «Gboard».
- Теперь нажмите на "Gboard" в разделе "Язык и ввод", чтобы просмотреть список параметров настройки для этого приложения.
Добавление дополнительных языковых макетов
Первый элемент в списке настроек — «Языки». Нажмите на него, чтобы отобразить язык и макеты по умолчанию.Теперь вы можете нажать язык и клавиатуру для дальнейшей настройки. На следующей странице вы найдете различные раскладки клавиатуры для английского языка, такие как «QWERTY», «Рукописный ввод», «QWERTZ», «AZERTY» и другие.
Если нужный язык недоступен, сначала добавьте клавиатуру для этого языка. Для этого вернитесь на страницу «Языки» и нажмите «ДОБАВИТЬ КЛАВИАТУРУ», которая отображается внизу. Вы найдете список всех языков и выберите нужный язык. Теперь отобразится страница раскладки клавиатуры выбранного вами языка. Вы можете проверить и изменить макет в соответствии с вашими требованиями. Выберите желаемый макет, нажав кнопку в нижней части предварительного просмотра макета. Вы также можете выбрать несколько макетов. Завершив выбор макета, нажмите «Готово», чтобы вернуться к предыдущему экрану.
Теперь на экране будут перечислены все выбранные раскладки клавиатуры. Снова нажмите стрелку назад, чтобы вернуться, и на странице снова отобразится список клавиатур. Теперь нажмите «Управление экранными клавиатурами» в конце. На следующей странице отобразится статус установленных клавиатур и убедитесь, что «Gboard» включен.
Переключение языка при наборе текста
Теперь, когда вы добавили пользовательскую раскладку клавиатуры в телефон Android, пришло время проверить, как она работает.
- Откройте любое приложение для обмена сообщениями, чтобы ввести сообщение, и коснитесь области ввода, чтобы вызвать клавиатуру.
- Нажмите и удерживайте пробел, чтобы просмотреть список доступных клавиатур и раскладок.
- Выберите нужную раскладку, и раскладка клавиатуры изменится.
- Наслаждайтесь набором текста с вашей любимой раскладкой клавиатуры.
- Вы можете переключать макет всякий раз, когда хотите переключить язык.
Изменение внешнего вида клавиатуры Google (Gboard)
Android также предоставляет массу возможностей для изменения внешнего вида Gboard. Вы можете установить свой любимый цвет или тему. Следующие шаги помогут вам добавить собственный цвет для Gboard.
- Откройте "Настройки" и выберите "Система > Язык и ввод".
- Найдите «Экранная клавиатура» и коснитесь ее.
- Затем выберите «Gboard» из списка клавиатур и выберите «Тема» из списка на следующей странице.
- Вы увидите все варианты изменения цвета клавиатуры и выбора ландшафта по вашему выбору. Также доступны расширенные параметры, такие как «Светлый градиент» и «Темный градиент». Не забудьте нажать «Подробнее», чтобы отобразить больше тем.
- Как только вы будете довольны темой, нажмите на нее, и появится окно предварительного просмотра. Просмотрите свою тему и нажмите кнопку "ПРИМЕНИТЬ".
- Вернитесь и откройте любое текстовое приложение, в котором отображается клавиатура. Клавиатура появится с выбранной вами темой. Убедитесь, что Gboard в настоящее время является вашей активной клавиатурой. Если нет, нажмите и удерживайте клавишу пробела и выберите «Gboard» в списке доступных клавиатур.
Клавиатура Microsoft SwiftKey
Gboard — лучшая клавиатура для Android, которая отлично работает и предоставляет массу возможностей для настройки. Однако некоторых пользователей это может не устроить, и они захотят иметь альтернативу. В этом случае «Microsoft SwiftKey Keyboard» — лучшая альтернатива «Gboard». «Microsoft SwiftKey Keyboard» предлагает больше возможностей настройки и тем, чем «Gboard», с превосходным прогнозированием текста.
Включение Microsoft SwiftKey Keyboard
Перейдите в магазин Google Play и установите приложение Microsoft SwiftKey Keyboard на свой телефон.
После завершения установки нажмите на приложение, чтобы открыть страницу со списком параметров. Найдите и коснитесь «Включить SwiftKey» в параметрах. Он напрямую откроет «Управление экранными клавиатурами», где вы можете включить «Microsoft SwiftKey Keyboard». Теперь вернитесь на главный экран «Microsoft SwiftKey Keyboard» и нажмите кнопку «Выбрать SwiftKey». Появится всплывающее сообщение «Выберите метод ввода» и выберите «Microsoft SwiftKey Keyboard» из списка переключателей.
Еще раз вернитесь на главный экран «Microsoft SwiftKey Keyboard» и нажмите «Завершить». На следующем экране отобразятся основные функции клавиатуры. Вы можете войти в свою учетную запись Microsoft, чтобы копировать и вставлять текст между телефоном и устройствами Windows. Если вы не хотите входить в свою учетную запись Microsoft, нажмите «Не сейчас», чтобы продолжить.
Читайте также: