我正在为 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/