Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 441 сообщений
Cообщения с меткой

keyboard - Самое интересное в блогах

Следующие 30  »
НАТАЛИЯ11

Значение клавиш. Клавиатура_keyboard.swf

Понедельник, 06 Марта 2017 г. 14:38 (ссылка)


Клавиатура_keyboard.swf



 



Наведите курсор на клавишу и увидите её значение.





Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Из песочницы] Как написать свою клавиатуру для Android

Пятница, 17 Февраля 2017 г. 14:13 (ссылка)

Здравствуйте. В данной статье я постараюсь рассказать и показать основные моменты написания собственной клавиатуры для Android'а. Статья предназначена для разработчиков, которые с этим не сталкивались, но имеют опыт знакомства с Android'ом.



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



Для начала необходимо создать пустой Android проект без Activity. После этого приступим к подготовке .xml файлов, которые будут описывать Android'у нашу клавиатуру.



Базовый layout-файл, keyboard.xml



Содержит в себе View класс Android'а под названием KeyboardView и описывает внешний вид клавиатуры.







Атрибуты:




  • android: keyPreviewHeight — задает высоту элемента подсказки, на котором отображается текущая нажатая клавиша.

  • android:keyPreviewLayout — указываем layout-файл, который описывает внешний вид preview'шки.



Код 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, на вход им подается код нажатой клавиши.



Итак, все готово… почти, осталось добавить наш сервис в манифест.











Поздравляю, вы написали свою первую клавиатуру!



-> Исходный код клавиатуры (по умолчанию в ней включен капс)

-> Официальная документация / туториал
Original source: habrahabr.ru.

https://habrahabr.ru/post/322070/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Donnarossa

Соло на клавиатуре

Воскресенье, 04 Декабря 2016 г. 19:41 (ссылка)

Это цитата сообщения Joker-6 Оригинальное сообщение


Нажав на клавиши, вы узнаете из назначение

Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
nonpvicigria

Window Wizard - магнитная щетка для окон

Понедельник, 19 Сентября 2016 г. 09:55 (ссылка)

bigimg (197x700, 84Kb)
Im0tQXO3z71dawXDveLUl6WmyL7IQ5mvWlSVM3FiTFNTARRPHMwuaTlWNjNID0lgnxAKjNDzgQ1T8BGWygKQXoeBMqBn46xRsm6yZSpKeILPRGl1E

Комментарии (0)КомментироватьВ цитатник или сообщество
ercusboa

Keyboard cat футболка

Суббота, 27 Июня 2015 г. 19:03 (ссылка)

Keyboard cat футболка.


Читать далее
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<keyboard - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda