Android键盘按键覆盖
我很好奇如何在下图所示的按钮或按键上实现以下覆盖?我正在实施自定义键盘…同样需要这个东西 编辑: 因此,我使用Gridview实现了一个键盘,如下所示 现在,我尝试在默认键盘中添加一些覆盖(点击)Android键盘按键覆盖,android,overlay,Android,Overlay,我很好奇如何在下图所示的按钮或按键上实现以下覆盖?我正在实施自定义键盘…同样需要这个东西 编辑: 因此,我使用Gridview实现了一个键盘,如下所示 现在,我尝试在默认键盘中添加一些覆盖(点击) 谢谢:)您需要的是“关键预览” 我假设您正在使用KeyboardView创建自定义键盘。您可以通过如下方式调用键预览来启用它:mKeyboardView.setPreviewEnabled(true) 编辑: 我认为这将有助于您的实现,并更详细地解释了我所尝试的 首先为键盘创建布局,通常仅包含键盘
谢谢:)您需要的是“关键预览” 我假设您正在使用
KeyboardView
创建自定义键盘。您可以通过如下方式调用键预览来启用它:mKeyboardView.setPreviewEnabled(true)代码>
编辑:
我认为这将有助于您的实现,并更详细地解释了我所尝试的
首先为键盘创建布局,通常仅包含键盘视图:
<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:keyPreviewLayout ="@layout/preview" />
祝你好运。使用弹出窗口
作为关键预览功能(实际上我在上一个IME项目中也做了同样的事情)
我建议您使用KeyboardView
的子类,因为它为您提供了很多功能,可以让事情变得轻松。每次按下键时,onPressed
会被回调,然后您就知道按下了哪个键。并深入了解键盘视图
的源代码,您可以在课堂上学习如何放置弹出窗口
只要一点点努力。但是如果你的类不是从KeyboardView
(比如使用GridView
)派生的,你需要花更多的时间来理解它。无论如何,源代码是一个很好的开始。我没有使用KeyboardView。我使用视图创建了自己的键盘。但是为了创造一个很棒的按键体验,我想用普通的按键视图实现这样的叠加排序。谢谢,我不明白你使用视图的意思!您可以添加更多关于如何创建自定义keybord的详细信息吗?通常,您必须创建一个包含行和键的xml键盘,一个用于键盘的xml布局,另一个用于preview.MAB,添加了更多详细信息。听起来是个好主意,PopupWindow,我将尝试这个。谢谢看:可爱的问题,我想要一些新的东西
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="#ffff00"
android:textStyle="bold"
android:textSize="30sp">
</TextView>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="60dp">
<Row>
<Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyLabel="2"/>
<Key android:codes="51" android:keyLabel="3"/>
</Row>
<Row>
<Key android:codes="52" android:keyLabel="4"/>
<Key android:codes="53" android:keyLabel="5"/>
<Key android:codes="54" android:keyLabel="6"/>
</Row>
<Row>
<Key android:codes="55" android:keyLabel="7"/>
<Key android:codes="56" android:keyLabel="8"/>
<Key android:codes="57" android:keyLabel="9"/>
</Row>
</Keyboard>
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
keyboard = new Keyboard(this, R.xml.numeric);
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);