java - 在 Android 键盘中通过 "hold and slide"打开特殊符号(重音符号等)的菜单

标签 java android menu keyboard

我正在为 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 项目,但不幸的是它非常庞大:/

最佳答案

这是一个非常非常古老的问题,但这可能对像我这样的其他人有所帮助。我正在浏览 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

关于java - 在 Android 键盘中通过 "hold and slide"打开特殊符号(重音符号等)的菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140677/

相关文章:

Android 4.4 http api 错误?

android - 我们如何将上下文转换为 fragment 引用?

java - 谷歌电子表格 API - com.google.gdata.util.ParseException : Invalid root element

android - 无法在 Firebase 上创建新用户

iphone - 适用于 iOS 的饼图(径向)菜单

css - 子菜单在 Chrome 中敏感,但在 Firefox 中很好

html - 我的下拉菜单的内容关闭得太快

java - 在 Java 中分配对象

java - 增强型 for 循环因 NullPointerException 停止

java - 我的 GUI 中使用 ActionListener 时出现错误