Откройте меню для специальных символов (акценты и т. Д.) С помощью «удерживайте и сдвиньте» на клавиатуре Android - PullRequest
3 голосов
/ 21 августа 2011

Я разрабатываю программную клавиатуру для Android (соответственно пытаюсь;)), и, поскольку я новичок в Android и Java, это не так просто.Основная клавиатура работает (благодаря примерам в Интернете), и теперь я пытаюсь создать своего рода «всплывающее окно» (с новыми кнопками), которое вызывается при нажатии и удерживании кнопки в течение определенного времени (время должно бытьоткрыть для настройки).Тогда нужно уметь перетаскивать палец на новые кнопки.Например: вы держите e, а затем перетащите палец на é и т. Д.

Моя первая попытка была использовать что-то вроде:

<Key android:codes="101" android:keyLabel="e"
 android:popupKeyboard="@layout/popup"
 android:popupCharacters="eéè€"
/>

, где popup.xml содержит отдельную базовую структуру клавиатуры:

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="10%p" 
    android:horizontalGap="0px"
    android:verticalGap="0px"
    android:keyHeight="30px" />

Но есть несколько недостатков:

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

Как бы вы решили эту проблему?Невидимый ряд клавиш (абсолютная позиция), который устанавливается видимым при нажатии кнопки в течение определенного времени (отслеживается события движения и т. Д.)?Знаете ли вы какие-нибудь учебные пособия, которые дают информацию об этой концепции «нажатие-удержание-перетаскивание» в клавиатурах?Пример кода был бы очень полезен.Я просмотрел проект LatinIME git, но, к сожалению, он ошеломляющий: /

1 Ответ

0 голосов
/ 11 марта 2014

Это очень, очень старый вопрос, но он может помочь кому-то, как я. Я просматриваю исходный код Android, чтобы увидеть, как сделать всплывающее окно Alt-Key: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/inputmethodservice/KeyboardView.java#KeyboardView.onLongPress%28android.inputmethodservice.Keyboard.Key%29

...